HEC-RAS 2D HDF Data Analysis Notebook¶

This notebook demonstrates how to manipulate and analyze HEC-RAS 2D HDF data using the ras-commander library. It leverages the HdfBase, HdfUtils, HdfStruc, HdfMesh, HdfXsec, HdfBndry, HdfPlan, HdfResultsPlan, HdfResultsMesh, and HdfResultsXsec classes to streamline data extraction, processing, and visualization.

In [1]:
# Import required Libraries
import subprocess
import sys
import os
from pathlib import Path

def install_module(module_name):
    try:
        __import__(module_name)
    except ImportError:
        print(f"{module_name} not found. Installing...")
        subprocess.check_call([sys.executable, "-m", "pip", "install", "-U", module_name])

# List of modules to check and install if necessary
modules = ['h5py', 'numpy', 'requests', 'geopandas', 'matplotlib', 'pandas', 'pyproj', 'shapely', 'xarray', 'rasterio']
for module in modules:
    install_module(module)

# Import the rest of the required libraries
import pandas as pd
import numpy as np
import geopandas as gpd
import matplotlib.pyplot as plt
import pyproj
from shapely.geometry import Point, LineString, Polygon
import xarray as xr
from mpl_toolkits.axes_grid1.inset_locator import inset_axes
import matplotlib.patches as patches
from matplotlib.patches import ConnectionPatch
import logging
from pathlib import Path
import rasterio
from rasterio.plot import show
In [2]:
# Install ras-commander if you are not in a dev environment. 
# install_module(ras-commander)

Importing ras-commander flexibly (from package or local dev copy)¶

In [3]:
# Flexible Import for RAS Commander
import sys
from pathlib import Path

# Flexible imports to allow for development without installation 
#  ** Use this version with Jupyter Notebooks **
try:
    # Try to import from the installed package
    from ras_commander import (init_ras_project, HdfBase, HdfUtils, HdfFluvialPluvial, HdfStruc, HdfMesh, HdfXsec, HdfBndry, HdfPlan, HdfResultsPlan, HdfResultsMesh, HdfResultsXsec, HdfPipe, HdfPump, RasExamples, RasCmdr, RasPlan, RasGeo, RasUnsteady, RasUtils, RasPrj, RasGpt, ras)
    from ras_commander.Decorators import standardize_input, log_call
    from ras_commander.LoggingConfig import setup_logging, get_logger
except ImportError:
    # If the import fails, add the parent directory to the Python path
    print("Using Local Dev Copy")
    import os
    current_file = Path(os.getcwd()).resolve()
    parent_directory = current_file.parent
    sys.path.append(str(parent_directory))
    
    # Now try to import again
    from ras_commander import (init_ras_project, HdfBase, HdfUtils, HdfFluvialPluvial, HdfStruc, HdfMesh, HdfXsec, HdfBndry, HdfPlan, HdfResultsPlan, HdfResultsMesh, HdfResultsXsec, HdfPipe, HdfPump, RasExamples, RasCmdr, RasPlan, RasGeo, RasUnsteady, RasUtils, RasPrj, RasGpt, ras)
    from ras_commander.Decorators import standardize_input, log_call
    from ras_commander.LoggingConfig import setup_logging, get_logger

print("ras_commander imported successfully")
Using Local Dev Copy
ras_commander imported successfully
In [4]:
# Download the BaldEagleCrkMulti2D project from HEC and run plan 01

# Define the path to the BaldEagleCrkMulti2D project
current_dir = Path.cwd()  # Adjust if your notebook is in a different directory
bald_eagle_path = current_dir / "example_projects" / "BaldEagleCrkMulti2D"
import logging

# Check if BaldEagleCrkMulti2D.p06.hdf exists (so we don't have to re-run the simulation when re-running or debugging)
hdf_file = bald_eagle_path / "BaldEagleDamBrk.p06.hdf"

if not hdf_file.exists():
    # Initialize RasExamples and extract the BaldEagleCrkMulti2D project
    ras_examples = RasExamples()
    ras_examples.extract_project(["BaldEagleCrkMulti2D"])

    # Initialize custom Ras object
    bald_eagle = RasPrj()

    # Initialize the RAS project using the custom ras object
    bald_eagle = init_ras_project(bald_eagle_path, "6.6", ras_instance=bald_eagle)
    logging.info(f"Bald Eagle project initialized with folder: {bald_eagle.project_folder}")
    
    logging.info(f"Bald Eagle object id: {id(bald_eagle)}")
    
    # Define the plan number to execute
    plan_number = "06"

    # Update run flags for the project
    RasPlan.update_run_flags(
        plan_number,
        geometry_preprocessor=True,
        unsteady_flow_simulation=True,
        run_sediment=False,
        post_processor=True,
        floodplain_mapping=False,
        ras_object=bald_eagle
    )

    # Execute Plan 06 using RasCmdr for Bald Eagle
    print(f"Executing Plan {plan_number} for the Bald Eagle Creek project...")
    success_bald_eagle = RasCmdr.compute_plan(plan_number, ras_object=bald_eagle)
    if success_bald_eagle:
        print(f"Plan {plan_number} executed successfully for Bald Eagle.\n")
    else:
        print(f"Plan {plan_number} execution failed for Bald Eagle.\n")
else:
    print("BaldEagleCrkMulti2D.p06.hdf already exists. Skipping project extraction and plan execution.")
    # Initialize the RAS project using the custom ras object
    bald_eagle = RasPrj()
    bald_eagle = init_ras_project(bald_eagle_path, "6.6", ras_instance=bald_eagle)
    plan_number = "06"
2024-11-06 16:14:25,645 - ras_commander.RasPrj - INFO - Calling init_ras_project
2024-11-06 16:14:25,646 - ras_commander.RasPrj - INFO - Calling get_ras_exe
2024-11-06 16:14:25,647 - ras_commander.RasPrj - INFO - HEC-RAS executable found at default path: C:\Program Files (x86)\HEC\HEC-RAS\6.6\Ras.exe
2024-11-06 16:14:25,648 - ras_commander.RasPrj - INFO - Finished get_ras_exe
2024-11-06 16:14:25,649 - ras_commander.RasPrj - INFO - Calling initialize
2024-11-06 16:14:25,653 - ras_commander.RasPrj - INFO - Calling find_ras_prj
2024-11-06 16:14:25,665 - ras_commander.RasPrj - INFO - Finished find_ras_prj
2024-11-06 16:14:25,666 - ras_commander.RasPrj - INFO - Calling _load_project_data
2024-11-06 16:14:25,681 - ras_commander.RasPrj - INFO - Calling get_geom_entries
2024-11-06 16:14:25,687 - ras_commander.RasPrj - INFO - Found 10 geometry entries
2024-11-06 16:14:25,688 - ras_commander.RasPrj - INFO - Finished get_geom_entries
2024-11-06 16:14:25,694 - ras_commander.RasPrj - INFO - Finished _load_project_data
2024-11-06 16:14:25,695 - ras_commander.RasPrj - INFO - Calling get_boundary_conditions
2024-11-06 16:14:25,706 - ras_commander.RasPrj - INFO - Finished get_boundary_conditions
2024-11-06 16:14:25,707 - ras_commander.RasPrj - INFO - Initialization complete for project: BaldEagleDamBrk
2024-11-06 16:14:25,708 - ras_commander.RasPrj - INFO - Plan entries: 11, Flow entries: 0, Unsteady entries: 10, Geometry entries: 10, Boundary conditions: 51
2024-11-06 16:14:25,709 - ras_commander.RasPrj - INFO - Geometry HDF files found: 11
2024-11-06 16:14:25,710 - ras_commander.RasPrj - INFO - Finished initialize
2024-11-06 16:14:25,710 - ras_commander.RasPrj - INFO - Project initialized. ras_instance project folder: c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D
2024-11-06 16:14:25,711 - ras_commander.RasPrj - INFO - Finished init_ras_project
BaldEagleCrkMulti2D.p06.hdf already exists. Skipping project extraction and plan execution.
In [5]:
# Load Plan and Geometry Dataframes and find Plan and Geometry HDF Paths

# Display plan_df for bald_eagle project
print("Plan DataFrame for bald_eagle project:")
display(bald_eagle.plan_df)

# Display geom_df for bald_eagle project
print("\nGeometry DataFrame for bald_eagle project:")
display(bald_eagle.geom_df)

# Get the plan HDF path
plan_number = "06"  # Assuming we're using plan 01 as in the previous code
plan_hdf_path = bald_eagle.plan_df.loc[bald_eagle.plan_df['plan_number'] == plan_number, 'HDF_Results_Path'].values[0]

# Get the geometry file number from the plan DataFrame
geom_file = bald_eagle.plan_df.loc[bald_eagle.plan_df['plan_number'] == plan_number, 'Geom File'].values[0]
geom_number = geom_file[1:]  # Remove the 'g' prefix

# Get the geometry HDF path
geom_hdf_path = bald_eagle.geom_df.loc[bald_eagle.geom_df['geom_number'] == geom_number, 'hdf_path'].values[0]

print(f"\nPlan HDF path for Plan {plan_number}: {plan_hdf_path}")
print(f"Geometry HDF path for Plan {plan_number}: {geom_hdf_path}")
Plan DataFrame for bald_eagle project:
plan_number full_path Computation Interval DSS File Flow File Friction Slope Method Geom File Mapping Interval Plan Title Program Version ... Run WQNet Short Identifier Simulation Date UNET D1 Cores UNET Use Existing IB Tables UNET 1D Methodology UNET D2 SolverType UNET D2 Name HDF_Results_Path Geom_File
0 13 c:\GH\ras-commander\examples\example_projects\... 30SEC dss u07 1 g06 30MIN PMF with Multi 2D Areas 5.10 ... 0 PMF Multi 2D 01JAN1999,1200,04JAN1999,1200 0 -1 Finite Difference Pardiso (Direct) 193 None c:\GH\ras-commander\examples\example_projects\...
1 15 c:\GH\ras-commander\examples\example_projects\... 20SEC dss u12 1 g08 5MIN 1d-2D Dambreak Refined Grid 5.10 ... 0 1D-2D Refined Grid 01JAN1999,1200,04JAN1999,1200 0 -1 Finite Difference NaN BaldEagleCr None c:\GH\ras-commander\examples\example_projects\...
2 17 c:\GH\ras-commander\examples\example_projects\... 1MIN dss u09 1 g10 5MIN 2D to 1D No Dam 5.00 ... 0 2D to 1D No Dam 01JAN1999,1200,06JAN1999,1200 0 -1 NaN NaN Upstream2D None c:\GH\ras-commander\examples\example_projects\...
3 18 c:\GH\ras-commander\examples\example_projects\... 20SEC dss u10 1 g11 5MIN 2D to 2D Run 5.00 ... 0 2D to 2D Run 01JAN1999,1200,04JAN1999,1200 0 -1 NaN NaN BaldEagleCr None c:\GH\ras-commander\examples\example_projects\...
4 19 c:\GH\ras-commander\examples\example_projects\... 20SEC dss u11 1 g12 10MIN SA to 2D Dam Break Run 5.00 ... 0 SA to 2D Dam Break 01JAN1999,1200,04JAN1999,1200 0 -1 NaN NaN BaldEagleCr None c:\GH\ras-commander\examples\example_projects\...
5 03 c:\GH\ras-commander\examples\example_projects\... 30SEC dss u13 1 g09 10MIN Single 2D Area - Internal Dam Structure 5.04 ... 0 Single 2D 01JAN1999,1200,04JAN1999,1200 0 -1 Finite Difference NaN BaldEagleCr None c:\GH\ras-commander\examples\example_projects\...
6 04 c:\GH\ras-commander\examples\example_projects\... 20SEC dss u01 1 g13 5MIN SA to 2D Area Conn - 2D Levee Structure 5.00 ... 0 2D Levee Struc 01JAN1999,1200,04JAN1999,1200 0 -1 NaN NaN BaldEagleCr None c:\GH\ras-commander\examples\example_projects\...
7 02 c:\GH\ras-commander\examples\example_projects\... 10SEC dss u01 1 g01 5MIN SA to Detailed 2D Breach 5.10 ... 0 SA-2D Det Brch 01JAN1999,1200,04JAN1999,1200 0 -1 Finite Difference Pardiso (Direct) BaldEagleCr None c:\GH\ras-commander\examples\example_projects\...
8 01 c:\GH\ras-commander\examples\example_projects\... 5SEC dss u01 1 g01 5MIN SA to Detailed 2D Breach FEQ 5.03 ... 0 SA-2D Det FEQ 01JAN1999,1200,04JAN1999,1200 0 -1 NaN NaN BaldEagleCr None c:\GH\ras-commander\examples\example_projects\...
9 05 c:\GH\ras-commander\examples\example_projects\... 5SEC dss u02 1 g03 10MIN Single 2D area with Bridges FEQ 5.10 ... 0 Single 2D Bridges FEQ 01JAN1999,1200,04JAN1999,1200 0 -1 Finite Difference PARDISO (Direct) BaldEagleCr None c:\GH\ras-commander\examples\example_projects\...
10 06 c:\GH\ras-commander\examples\example_projects\... 20SEC dss u03 1 g09 10MIN Gridded Precip - Infiltration 6.00 ... 0 Grid Precip Infiltration 09SEP2018,0000,14SEP2018,0000 0 -1 Finite Difference Pardiso (Direct) BaldEagleCr c:\GH\ras-commander\examples\example_projects\... c:\GH\ras-commander\examples\example_projects\...

11 rows × 24 columns

Geometry DataFrame for bald_eagle project:
geom_file geom_number full_path hdf_path
0 g06 06 c:\GH\ras-commander\examples\example_projects\... c:\GH\ras-commander\examples\example_projects\...
1 g08 08 c:\GH\ras-commander\examples\example_projects\... c:\GH\ras-commander\examples\example_projects\...
2 g10 10 c:\GH\ras-commander\examples\example_projects\... c:\GH\ras-commander\examples\example_projects\...
3 g11 11 c:\GH\ras-commander\examples\example_projects\... c:\GH\ras-commander\examples\example_projects\...
4 g12 12 c:\GH\ras-commander\examples\example_projects\... c:\GH\ras-commander\examples\example_projects\...
5 g09 09 c:\GH\ras-commander\examples\example_projects\... c:\GH\ras-commander\examples\example_projects\...
6 g13 13 c:\GH\ras-commander\examples\example_projects\... c:\GH\ras-commander\examples\example_projects\...
7 g01 01 c:\GH\ras-commander\examples\example_projects\... c:\GH\ras-commander\examples\example_projects\...
8 g03 03 c:\GH\ras-commander\examples\example_projects\... c:\GH\ras-commander\examples\example_projects\...
9 g02 02 c:\GH\ras-commander\examples\example_projects\... c:\GH\ras-commander\examples\example_projects\...
Plan HDF path for Plan 06: c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D\BaldEagleDamBrk.p06.hdf
Geometry HDF path for Plan 06: c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D\BaldEagleDamBrk.g09.hdf
In [6]:
# Define the HDF input path as Plan Number

plan_number = "06"  # Assuming we're using plan 01 as in the previous code

RasHdfUtils | Method Name | Description | |-------------|-------------| | get_attrs | Converts attributes from a HEC-RAS HDF file into a Python dictionary for a given attribute path | | get_root_attrs | Returns attributes at root level of HEC-RAS HDF file | | get_hdf_paths_with_properties | Gets all paths in the HDF file with their properties | | get_group_attributes_as_df | Gets attributes of a group in the HDF file as a DataFrame | | get_hdf_filename | Gets the HDF filename from various input types | | get_runtime_data | Extracts runtime and compute time data from a single HDF file |

In [7]:
# Get HDF Paths with Properties (For Exploring HDF Files)
HdfBase.get_dataset_info(plan_number, ras_object=bald_eagle, group_path="/")
2024-11-06 16:14:25,778 - ras_commander.HdfBase - INFO - Using HDF file: c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D\BaldEagleDamBrk.p06.hdf
Exploring group: /


    Group: //Event Conditions
    Attributes for //Event Conditions:
        Completed Successfully: b'True'
        Date Processed: b'11/6/2024 2:16:11 PM'
        Group: //Event Conditions/Meteorology
            Dataset: //Event Conditions/Meteorology/Attributes
                Shape: (1,)
                Dtype: [('Variable', 'S32'), ('Group', 'S42')]
            Group: //Event Conditions/Meteorology/Precipitation
    Attributes for //Event Conditions/Meteorology/Precipitation:
        DSS Filename: b'.\\Precipitation\\precip.2018.09.dss'
        DSS Pathname: b'/SHG/MARFC/PRECIP/01SEP2018:0200/01SEP2018:0300/NEXRAD/'
        Data Type: b'per-cum'
        Interpolation Method: b''
        Mode: b'Gridded'
        Projection: b'PROJCS["USA_Contiguous_Albers_Equal_Area_Conic_USGS_version",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0],UNIT["Degree",0.0174532925199433]],PROJECTION["Albers_Conic_Equal_Area"],PARAMETER["latitude_of_center",23],PARAMETER["longitude_of_center",-96],PARAMETER["standard_parallel_1",29.5],PARAMETER["standard_parallel_2",45.5],PARAMETER["false_easting",0],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Easting",EAST],AXIS["Northing",NORTH]]'
        Raster Cellsize: 2000.0
        Raster Cols: 515
        Raster Left: 1096000.0
        Raster Rows: 522
        Raster Top: 2560000.0
        Source: b'DSS'
        Units: b'in'
                Group: //Event Conditions/Meteorology/Precipitation/2D Flow Areas
                    Group: //Event Conditions/Meteorology/Precipitation/2D Flow Areas/BaldEagleCr
                        Dataset: //Event Conditions/Meteorology/Precipitation/2D Flow Areas/BaldEagleCr/Cell Indexes
                            Shape: (72264,)
                            Dtype: int32
                        Dataset: //Event Conditions/Meteorology/Precipitation/2D Flow Areas/BaldEagleCr/Cell Info
                            Shape: (18066, 2)
                            Dtype: int32
                        Dataset: //Event Conditions/Meteorology/Precipitation/2D Flow Areas/BaldEagleCr/Cell Weights
                            Shape: (72264,)
                            Dtype: float32
                        Dataset: //Event Conditions/Meteorology/Precipitation/2D Flow Areas/BaldEagleCr/Face Indexes
                            Shape: (150376,)
                            Dtype: int32
                        Dataset: //Event Conditions/Meteorology/Precipitation/2D Flow Areas/BaldEagleCr/Face Info
                            Shape: (37594, 2)
                            Dtype: int32
                        Dataset: //Event Conditions/Meteorology/Precipitation/2D Flow Areas/BaldEagleCr/Face Weights
                            Shape: (150376,)
                            Dtype: float32
                Dataset: //Event Conditions/Meteorology/Precipitation/Timestamp
                    Shape: (122,)
                    Dtype: |S22
                Dataset: //Event Conditions/Meteorology/Precipitation/Values
                    Shape: (122, 268830)
                    Dtype: float32
        Group: //Event Conditions/Unsteady
            Group: //Event Conditions/Unsteady/Boundary Conditions
                Group: //Event Conditions/Unsteady/Boundary Conditions/Flow Hydrographs
                    Dataset: //Event Conditions/Unsteady/Boundary Conditions/Flow Hydrographs/2D: BaldEagleCr BCLine: Upstream Inflow
                        Shape: (121, 2)
                        Dtype: float32
    Attributes for //Event Conditions/Unsteady/Boundary Conditions/Flow Hydrographs/2D: BaldEagleCr BCLine: Upstream Inflow:
        2D Flow Area: b'BaldEagleCr'
        BC Line: b'Upstream Inflow'
        Check TW Stage: b'False'
        Data Type: b'INST-VAL'
        EG Slope For Distributing Flow: 0.0005000000237487257
        End Date: b'13Sep2018 2400'
        Face Fraction: [0.01517637 1.         1.         1.         1.         1.
 1.         1.         1.        ]
        Face Indexes: [37450 37483 37482 37504 37524 37522 37536 37539 37197]
        Face Point Indexes: [19255 19256 19270 19283 19285 19294 19302 19304 19309 19528]
        Interval: b'Days'
        Node Index: 1
        Start Date: b'08Sep2018 2400'
                Group: //Event Conditions/Unsteady/Boundary Conditions/Normal Depths
                    Dataset: //Event Conditions/Unsteady/Boundary Conditions/Normal Depths/2D: BaldEagleCr BCLine: DS2NormalD
                        Shape: (1,)
                        Dtype: float32
    Attributes for //Event Conditions/Unsteady/Boundary Conditions/Normal Depths/2D: BaldEagleCr BCLine: DS2NormalD:
        2D Flow Area: b'BaldEagleCr'
        BC Line: b'DS2NormalD'
        BC Line WS: b'Multiple'
        Check TW Stage: b'False'
        Face Fraction: [1.        1.        1.        1.        1.        1.        1.
 1.        1.        1.        0.6023718]
        Face Indexes: [37551  2157  2032  1904   762  1552  1444  1329  1223  1104   983]
        Face Point Indexes: [19486  1038   976   915   855   796   738   680   623   567   511   455]
        Node Index: 1
                    Dataset: //Event Conditions/Unsteady/Boundary Conditions/Normal Depths/2D: BaldEagleCr BCLine: DSNormalDepth
                        Shape: (1,)
                        Dtype: float32
    Attributes for //Event Conditions/Unsteady/Boundary Conditions/Normal Depths/2D: BaldEagleCr BCLine: DSNormalDepth:
        2D Flow Area: b'BaldEagleCr'
        BC Line: b'DSNormalDepth'
        BC Line WS: b'Multiple'
        Check TW Stage: b'False'
        Face Fraction: [0.49774522 1.         1.         1.         1.         1.
 0.8934481 ]
        Face Indexes: [2954 2960 2823 2829 2683 2679 2540]
        Face Point Indexes: [1443 1444 1375 1376 1377 1308 1235 1236]
        Node Index: 1
            Group: //Event Conditions/Unsteady/Initial Conditions
    Attributes for //Event Conditions/Unsteady/Initial Conditions:
        Startup Mode: b'Computed'

    Group: //Geometry
    Attributes for //Geometry:
        Complete Geometry: b'True'
        Extents: [1960041.35636708 2092643.59732271  285497.89971632  375079.47221333]
        Geometry Time: b'06Nov2024 14:15:29'
        Infiltration Date Last Modified: b'11MAR2022 13:52:44'
        Infiltration File Date: b'24NOV2020 13:24:58'
        Infiltration Filename: b'.\\Soils Data\\Infiltration.hdf'
        Infiltration Layername: b'Infiltration'
        Land Cover Date Last Modified: b'11MAR2022 13:45:08'
        Land Cover File Date: b'11MAR2022 13:45:08'
        Land Cover Filename: b'.\\Land Classification\\LandCover.hdf'
        Land Cover Layername: b'LandCover'
        Percent Impervious Date Last Modified: b'11MAR2022 13:45:08'
        Percent Impervious File Date: b'11MAR2022 13:45:08'
        Percent Impervious Filename: b'.\\Land Classification\\LandCover.hdf'
        Percent Impervious Layername: b'LandCover'
        SI Units: b'False'
        Terrain File Date: b'09FEB2015 08:26:58'
        Terrain Filename: b'.\\Terrain\\Terrain50.hdf'
        Terrain Layername: b'Terrain50'
        Title: b'Single 2D Area - Internal Dam Structure'
        Version: b'1.0.20 (20Sep2024)'
        Group: //Geometry/2D Flow Area Break Lines
            Dataset: //Geometry/2D Flow Area Break Lines/Attributes
                Shape: (4,)
                Dtype: [('Name', 'S32'), ('Cell Spacing Near', '<f4'), ('Cell Spacing Far', '<f4'), ('Near Repeats', '<i4'), ('Protection Radius', 'u1')]
            Dataset: //Geometry/2D Flow Area Break Lines/Polyline Info
                Shape: (4, 4)
                Dtype: int32
    Attributes for //Geometry/2D Flow Area Break Lines/Polyline Info:
        Column: [b'Point Starting Index' b'Point Count' b'Part Starting Index'
 b'Part Count']
        Feature Type: b'Polyline'
        Row: b'Feature'
            Dataset: //Geometry/2D Flow Area Break Lines/Polyline Parts
                Shape: (4, 2)
                Dtype: int32
    Attributes for //Geometry/2D Flow Area Break Lines/Polyline Parts:
        Column: [b'Point Starting Index' b'Point Count']
        Row: b'Part'
            Dataset: //Geometry/2D Flow Area Break Lines/Polyline Points
                Shape: (351, 2)
                Dtype: float64
    Attributes for //Geometry/2D Flow Area Break Lines/Polyline Points:
        Column: [b'X' b'Y']
        Row: b'Points'
        Group: //Geometry/2D Flow Areas
            Dataset: //Geometry/2D Flow Areas/Attributes
                Shape: (1,)
                Dtype: [('Name', 'S16'), ('Locked', 'u1'), ('Mann', '<f4'), ('Multiple Face Mann n', 'u1'), ('Composite LC', 'u1'), ('Cell Vol Tol', '<f4'), ('Cell Min Area Fraction', '<f4'), ('Face Profile Tol', '<f4'), ('Face Area Tol', '<f4'), ('Face Conv Ratio', '<f4'), ('Laminar Depth', '<f4'), ('Min Face Length Ratio', '<f4'), ('Spacing dx', '<f4'), ('Spacing dy', '<f4'), ('Shift dx', '<f4'), ('Shift dy', '<f4'), ('Cell Count', '<i4')]
            Group: //Geometry/2D Flow Areas/BaldEagleCr
    Attributes for //Geometry/2D Flow Areas/BaldEagleCr:
        Cell Average Size: 63656.63671875
        Cell Maximum Index: 9064
        Cell Maximum Size: 205597.9375
        Cell Minimum Area Fraction: 0.009999999776482582
        Cell Minimum Size: 3001.450927734375
        Cell Volume Tolerance: 0.009999999776482582
        Composite LC: 0
        Connection Profile Hash: [227 176 196  66 152 252  28  20 154 251 244 200 153 111 185  36  39 174
  65 228 100 155 147  76 164 149 153  27 120  82 184  85]
        Data Date: b'06Nov2024 14:15:35'
        Extents: [1965981.77456347 2084790.1384913   289578.11400543  371007.58255437]
        Face Area Conveyance Ratio: 0.019999999552965164
        Face Area Elevation Tolerance: 0.009999999776482582
        Face Profile Tolerance: 0.009999999776482582
        Infiltration Date Last Modified: b'06NOV2024 14:15:30'
        Infiltration File Date: b'06NOV2024 14:15:30'
        Infiltration Filename: b'.\\Soils Data\\Infiltration.hdf'
        Infiltration Layername: b'Infiltration'
        Infiltration Override Table Hash: [227 176 196  66 152 252  28  20 154 251 244 200 153 111 185  36  39 174
  65 228 100 155 147  76 164 149 153  27 120  82 184  85]
        Laminar Depth: 0.20000000298023224
        Land Cover Date Last Modified: b'06NOV2024 14:15:29'
        Land Cover File Date: b'06NOV2024 14:15:29'
        Land Cover Filename: b'.\\Land Classification\\LandCover.hdf'
        Land Cover Layername: b'LandCover'
        Manning's n: 0.03999999910593033
        Min Face Length Ratio: 0.05000000074505806
        Multiple Face Mann n: 0
        Percent Impervious Date Last Modified: b'06NOV2024 14:15:29'
        Percent Impervious File Date: b'06NOV2024 14:15:29'
        Percent Impervious Filename: b'.\\Land Classification\\LandCover.hdf'
        Percent Impervious Layername: b'LandCover'
        Property Tables LC Hash: [150 124  12 241 245 149 151  32  22  52 230  34 255 146  78   0 140  54
 198 203  26 145 168 123  26 120   0  70  47 191 126 143]
        Property Tables Last Computed: b'06NOV2024 14:16:04'
        Terrain File Date: b'06NOV2024 14:15:32'
        Terrain Filename: b'.\\Terrain\\Terrain50.hdf'
        Version: b'1.0'
                Dataset: //Geometry/2D Flow Areas/BaldEagleCr/Cells Center Coordinate
                    Shape: (19597, 2)
                    Dtype: float64
    Attributes for //Geometry/2D Flow Areas/BaldEagleCr/Cells Center Coordinate:
        Can Plot: b'False'
        Column: [b'X' b'Y']
        Row: b'Cell'
                Dataset: //Geometry/2D Flow Areas/BaldEagleCr/Cells Center Manning's n
                    Shape: (19597,)
                    Dtype: float32
    Attributes for //Geometry/2D Flow Areas/BaldEagleCr/Cells Center Manning's n:
        Can Plot: b'False'
        Column: [b'Index']
        Row: b'Cell'
                Dataset: //Geometry/2D Flow Areas/BaldEagleCr/Cells Face and Orientation Info
                    Shape: (19597, 2)
                    Dtype: int32
    Attributes for //Geometry/2D Flow Areas/BaldEagleCr/Cells Face and Orientation Info:
        Can Plot: b'False'
        Column: [b'Starting Index' b'Count']
        Row: b'Cell'
                Dataset: //Geometry/2D Flow Areas/BaldEagleCr/Cells Face and Orientation Values
                    Shape: (75188, 2)
                    Dtype: int32
    Attributes for //Geometry/2D Flow Areas/BaldEagleCr/Cells Face and Orientation Values:
        Can Plot: b'False'
        Column: [b'Face Index' b'Orientation']
        Row: b'row'
                Dataset: //Geometry/2D Flow Areas/BaldEagleCr/Cells FacePoint Indexes
                    Shape: (19597, 7)
                    Dtype: int32
    Attributes for //Geometry/2D Flow Areas/BaldEagleCr/Cells FacePoint Indexes:
        Can Plot: b'False'
        Column: [b'Face Point Indexes']
        Row: b'Cell'
                Dataset: //Geometry/2D Flow Areas/BaldEagleCr/Cells Minimum Elevation
                    Shape: (19597,)
                    Dtype: float32
    Attributes for //Geometry/2D Flow Areas/BaldEagleCr/Cells Minimum Elevation:
        Can Plot: b'False'
        Column: [b'Minimum Elevation']
        Row: b'Cell'
                Dataset: //Geometry/2D Flow Areas/BaldEagleCr/Cells Surface Area
                    Shape: (19597,)
                    Dtype: float32
    Attributes for //Geometry/2D Flow Areas/BaldEagleCr/Cells Surface Area:
        Can Plot: b'False'
        Column: [b'Surface Area']
        Row: b'Cell'
                Dataset: //Geometry/2D Flow Areas/BaldEagleCr/Cells Volume Elevation Info
                    Shape: (19597, 2)
                    Dtype: int32
    Attributes for //Geometry/2D Flow Areas/BaldEagleCr/Cells Volume Elevation Info:
        Can Plot: b'True'
        Column: [b'Starting Index' b'Count']
        Row: b'Cell'
                Dataset: //Geometry/2D Flow Areas/BaldEagleCr/Cells Volume Elevation Values
                    Shape: (636950, 2)
                    Dtype: float32
    Attributes for //Geometry/2D Flow Areas/BaldEagleCr/Cells Volume Elevation Values:
        Can Plot: b'True'
        Column: [b'Elevation' b'Volume']
        Row: b'row'
        Units: [b'ft' b'ft^3']
                Dataset: //Geometry/2D Flow Areas/BaldEagleCr/FacePoints Cell Index Values
                    Shape: (76719,)
                    Dtype: int32
    Attributes for //Geometry/2D Flow Areas/BaldEagleCr/FacePoints Cell Index Values:
        Can Plot: b'False'
        Column: [b'Cell Index']
        Row: b'row'
                Dataset: //Geometry/2D Flow Areas/BaldEagleCr/FacePoints Cell Info
                    Shape: (19529, 2)
                    Dtype: int32
    Attributes for //Geometry/2D Flow Areas/BaldEagleCr/FacePoints Cell Info:
        Can Plot: b'False'
        Column: [b'Starting Index' b'Count']
        Row: b'Face Point'
                Dataset: //Geometry/2D Flow Areas/BaldEagleCr/FacePoints Coordinate
                    Shape: (19529, 2)
                    Dtype: float64
    Attributes for //Geometry/2D Flow Areas/BaldEagleCr/FacePoints Coordinate:
        Can Plot: b'False'
        Column: [b'X' b'Y']
        Row: b'Face Point'
                Dataset: //Geometry/2D Flow Areas/BaldEagleCr/FacePoints Face and Orientation Info
                    Shape: (19529, 2)
                    Dtype: int32
    Attributes for //Geometry/2D Flow Areas/BaldEagleCr/FacePoints Face and Orientation Info:
        Can Plot: b'False'
        Column: [b'Start Index' b'Count']
        Row: b'Face Point'
                Dataset: //Geometry/2D Flow Areas/BaldEagleCr/FacePoints Face and Orientation Values
                    Shape: (75188, 2)
                    Dtype: int32
    Attributes for //Geometry/2D Flow Areas/BaldEagleCr/FacePoints Face and Orientation Values:
        Can Plot: b'False'
        Column: [b'Face Index'
 b"Orientation: '1' means face points toward this facepoint, '-1' means face points away from this facepoint"]
        Row: b'row'
                Dataset: //Geometry/2D Flow Areas/BaldEagleCr/FacePoints Is Perimeter
                    Shape: (19529,)
                    Dtype: int32
    Attributes for //Geometry/2D Flow Areas/BaldEagleCr/FacePoints Is Perimeter:
        Can Plot: b'False'
        Column: [b'Is On Perimeter']
        Row: b'Face Point'
                Dataset: //Geometry/2D Flow Areas/BaldEagleCr/Faces Area Elevation Info
                    Shape: (37594, 2)
                    Dtype: int32
    Attributes for //Geometry/2D Flow Areas/BaldEagleCr/Faces Area Elevation Info:
        Can Plot: b'True'
        Column: [b'Starting Index' b'Count']
        Row: b'Face'
                Dataset: //Geometry/2D Flow Areas/BaldEagleCr/Faces Area Elevation Values
                    Shape: (434012, 4)
                    Dtype: float32
    Attributes for //Geometry/2D Flow Areas/BaldEagleCr/Faces Area Elevation Values:
        Can Plot: b'True'
        Column: [b'Z' b'Area' b'Wetted Perimeter' b"Manning's n"]
        Row: b'row'
        Units: [b'ft' b'ft^2' b'ft' b's/m^(1/3)']
                Dataset: //Geometry/2D Flow Areas/BaldEagleCr/Faces Cell Indexes
                    Shape: (37594, 2)
                    Dtype: int32
    Attributes for //Geometry/2D Flow Areas/BaldEagleCr/Faces Cell Indexes:
        Can Plot: b'False'
        Column: [b'Cell 0' b'Cell 1']
        Row: b'Face'
                Dataset: //Geometry/2D Flow Areas/BaldEagleCr/Faces FacePoint Indexes
                    Shape: (37594, 2)
                    Dtype: int32
    Attributes for //Geometry/2D Flow Areas/BaldEagleCr/Faces FacePoint Indexes:
        Can Plot: b'False'
        Column: [b'Face Point A' b'Face Point B']
        Row: b'Face'
                Dataset: //Geometry/2D Flow Areas/BaldEagleCr/Faces Low Elevation Centroid
                    Shape: (37594,)
                    Dtype: float32
    Attributes for //Geometry/2D Flow Areas/BaldEagleCr/Faces Low Elevation Centroid:
        Can Plot: b'False'
        Column: [b'Centroid station for bottom 5% of the face area']
        Row: b'Face'
                Dataset: //Geometry/2D Flow Areas/BaldEagleCr/Faces Minimum Elevation
                    Shape: (37594,)
                    Dtype: float32
    Attributes for //Geometry/2D Flow Areas/BaldEagleCr/Faces Minimum Elevation:
        Can Plot: b'False'
        Column: [b'Minimum Elevation']
        Row: b'Face'
                Dataset: //Geometry/2D Flow Areas/BaldEagleCr/Faces NormalUnitVector and Length
                    Shape: (37594, 3)
                    Dtype: float32
    Attributes for //Geometry/2D Flow Areas/BaldEagleCr/Faces NormalUnitVector and Length:
        Can Plot: b'False'
        Column: [b'X Component' b'Y Component' b'Face Length']
        Row: b'Face'
                Dataset: //Geometry/2D Flow Areas/BaldEagleCr/Faces Perimeter Info
                    Shape: (37594, 2)
                    Dtype: int32
    Attributes for //Geometry/2D Flow Areas/BaldEagleCr/Faces Perimeter Info:
        Can Plot: b'False'
        Column: [b'Start Index' b'Count']
        Row: b'Face'
                Dataset: //Geometry/2D Flow Areas/BaldEagleCr/Faces Perimeter Values
                    Shape: (800, 2)
                    Dtype: float64
    Attributes for //Geometry/2D Flow Areas/BaldEagleCr/Faces Perimeter Values:
        Can Plot: b'False'
        Column: [b'X' b'Y']
        Row: b'row'
                Group: //Geometry/2D Flow Areas/BaldEagleCr/Infiltration
    Attributes for //Geometry/2D Flow Areas/BaldEagleCr/Infiltration:
        Infiltration Date Last Modified: b'06NOV2024 14:15:30'
        Infiltration File Date: b'06NOV2024 14:15:30'
        Infiltration Filename: b'.\\Soils Data\\Infiltration.hdf'
        Infiltration Layername: b'Infiltration'
                    Dataset: //Geometry/2D Flow Areas/BaldEagleCr/Infiltration/Abstraction Ratio
                        Shape: (18066,)
                        Dtype: float32
                    Dataset: //Geometry/2D Flow Areas/BaldEagleCr/Infiltration/Cell Center Classifications
                        Shape: (18066,)
                        Dtype: int32
                    Dataset: //Geometry/2D Flow Areas/BaldEagleCr/Infiltration/Curve Number
                        Shape: (18066,)
                        Dtype: float32
                    Dataset: //Geometry/2D Flow Areas/BaldEagleCr/Infiltration/Face Center Classifications
                        Shape: (37594,)
                        Dtype: int32
                    Dataset: //Geometry/2D Flow Areas/BaldEagleCr/Infiltration/Minimum Infiltration Rate
                        Shape: (18066,)
                        Dtype: float32
                    Dataset: //Geometry/2D Flow Areas/BaldEagleCr/Infiltration/Properties
                        Shape: (1,)
                        Dtype: [('Name', 'S27'), ('Value', '<f4')]
                Group: //Geometry/2D Flow Areas/BaldEagleCr/Percent Impervious
    Attributes for //Geometry/2D Flow Areas/BaldEagleCr/Percent Impervious:
        Percent Impervious Date Last Modified: b'06NOV2024 14:15:29'
        Percent Impervious File Date: b'06NOV2024 14:15:29'
        Percent Impervious Filename: b'.\\Land Classification\\LandCover.hdf'
        Percent Impervious Layername: b'LandCover'
                    Dataset: //Geometry/2D Flow Areas/BaldEagleCr/Percent Impervious/Cell Center Classifications
                        Shape: (18066,)
                        Dtype: int32
                    Dataset: //Geometry/2D Flow Areas/BaldEagleCr/Percent Impervious/Face Center Classifications
                        Shape: (37594,)
                        Dtype: int32
                    Dataset: //Geometry/2D Flow Areas/BaldEagleCr/Percent Impervious/Percent Impervious
                        Shape: (18066,)
                        Dtype: float32
                Dataset: //Geometry/2D Flow Areas/BaldEagleCr/Perimeter
                    Shape: (537, 2)
                    Dtype: float64
    Attributes for //Geometry/2D Flow Areas/BaldEagleCr/Perimeter:
        Can Plot: b'False'
        Column: [b'X' b'Y']
        Row: b'Points'
            Dataset: //Geometry/2D Flow Areas/Cell Info
                Shape: (1, 2)
                Dtype: int32
    Attributes for //Geometry/2D Flow Areas/Cell Info:
        Column: [b'Point Starting Index' b'Point Count']
        Feature Type: b'MultiPoint'
        Row: b'Feature'
            Dataset: //Geometry/2D Flow Areas/Cell Points
                Shape: (18066, 2)
                Dtype: float64
    Attributes for //Geometry/2D Flow Areas/Cell Points:
        Column: [b'X' b'Y']
        Row: b'Points'
            Dataset: //Geometry/2D Flow Areas/Polygon Info
                Shape: (1, 4)
                Dtype: int32
    Attributes for //Geometry/2D Flow Areas/Polygon Info:
        Column: [b'Point Starting Index' b'Point Count' b'Part Starting Index'
 b'Part Count']
        Feature Type: b'Polygon'
        Row: b'Feature'
            Dataset: //Geometry/2D Flow Areas/Polygon Parts
                Shape: (1, 2)
                Dtype: int32
    Attributes for //Geometry/2D Flow Areas/Polygon Parts:
        Column: [b'Point Starting Index' b'Point Count']
        Row: b'Part'
            Dataset: //Geometry/2D Flow Areas/Polygon Points
                Shape: (537, 2)
                Dtype: float64
    Attributes for //Geometry/2D Flow Areas/Polygon Points:
        Column: [b'X' b'Y']
        Row: b'Points'
        Group: //Geometry/Boundary Condition Lines
            Dataset: //Geometry/Boundary Condition Lines/Attributes
                Shape: (3,)
                Dtype: [('Name', 'S32'), ('SA-2D', 'S16'), ('Type', 'S8'), ('Length', '<f4')]
            Dataset: //Geometry/Boundary Condition Lines/External Faces
                Shape: (28,)
                Dtype: [('BC Line ID', '<i4'), ('Face Index', '<i4'), ('FP Start Index', '<i4'), ('FP End Index', '<i4'), ('Station Start', '<f4'), ('Station End', '<f4')]
            Dataset: //Geometry/Boundary Condition Lines/Polyline Info
                Shape: (3, 4)
                Dtype: int32
    Attributes for //Geometry/Boundary Condition Lines/Polyline Info:
        Column: [b'Point Starting Index' b'Point Count' b'Part Starting Index'
 b'Part Count']
        Feature Type: b'Polyline'
        Row: b'Feature'
            Dataset: //Geometry/Boundary Condition Lines/Polyline Parts
                Shape: (3, 2)
                Dtype: int32
    Attributes for //Geometry/Boundary Condition Lines/Polyline Parts:
        Column: [b'Point Starting Index' b'Point Count']
        Row: b'Part'
            Dataset: //Geometry/Boundary Condition Lines/Polyline Points
                Shape: (8, 2)
                Dtype: float64
    Attributes for //Geometry/Boundary Condition Lines/Polyline Points:
        Column: [b'X' b'Y']
        Row: b'Points'
        Group: //Geometry/Cross Sections
            Group: //Geometry/Cross Sections/Flow Distribution
                Dataset: //Geometry/Cross Sections/Flow Distribution/Flow Normalized Shear Factor
                    Shape: (45, 4)
                    Dtype: float32
    Attributes for //Geometry/Cross Sections/Flow Distribution/Flow Normalized Shear Factor:
        Fraction Shear: b'Multiply by Total Q^2 for Shear'
        Units: b'lbf*s^2/ft^8'
                Dataset: //Geometry/Cross Sections/Flow Distribution/Flow Normalized Velocity Factor
                    Shape: (45, 4)
                    Dtype: float32
    Attributes for //Geometry/Cross Sections/Flow Distribution/Flow Normalized Velocity Factor:
        Fraction Velocity: b'Multiply by Total Q for Velocity'
        Units: b'1/ft^2'
                Dataset: //Geometry/Cross Sections/Flow Distribution/Info
                    Shape: (2, 3)
                    Dtype: int32
                Dataset: //Geometry/Cross Sections/Flow Distribution/Stations
                    Shape: (2, 5)
                    Dtype: float32
    Attributes for //Geometry/Cross Sections/Flow Distribution/Stations:
        Flow Distribution Stations: b'Flow Distribution station for XSEC'
                Dataset: //Geometry/Cross Sections/Flow Distribution/Water Surface
                    Shape: (45, 3)
                    Dtype: float32
    Attributes for //Geometry/Cross Sections/Flow Distribution/Water Surface:
        Column 1: b'Water Surface Elevation'
        Column 2: b'Starting WSEL station for XSEC'
        Column 3: b'Ending WSEL station for XSEC'
            Group: //Geometry/Cross Sections/Property Tables
                Dataset: //Geometry/Cross Sections/Property Tables/Cell Info
                    Shape: (1, 2)
                    Dtype: int32
    Attributes for //Geometry/Cross Sections/Property Tables/Cell Info:
        Column=: [b'Starting Index' b'Count']
                Dataset: //Geometry/Cross Sections/Property Tables/Cell Value
                    Shape: (22, 3)
                    Dtype: float32
    Attributes for //Geometry/Cross Sections/Property Tables/Cell Value:
        Variables: [[b'Elevation' b'ft']
 [b'Volume' b'ft^2']
 [b'Area' b'ft^2']]
                Dataset: //Geometry/Cross Sections/Property Tables/XSEC Info
                    Shape: (2, 3)
                    Dtype: int32
    Attributes for //Geometry/Cross Sections/Property Tables/XSEC Info:
        Column=: [b'Starting Index' b'Count' b'DS Cell']
                Dataset: //Geometry/Cross Sections/Property Tables/XSEC Value
                    Shape: (46, 23)
                    Dtype: float32
    Attributes for //Geometry/Cross Sections/Property Tables/XSEC Value:
        Variables: [[b'Elevation' b'ft']
 [b'Area LOB' b'ft^2']
 [b'Area Chan' b'ft^2']
 [b'Area ROB' b'ft^2']
 [b'Area Ineff LOB' b'ft^2']
 [b'Area Ineff Chan' b'ft^2']
 [b'Area Ineff ROB' b'ft^2']
 [b'Conv LOB' b'cfs']
 [b'Conv Chan' b'cfs']
 [b'Conv ROB' b'cfs']
 [b'WP LOB' b'ft']
 [b'WP Chan' b'ft']
 [b'WP ROB' b'ft']
 [b'Mann N LOB' b'']
 [b'Mann N Chan' b'']
 [b'Mann N ROB' b'']
 [b'Top Width' b'ft']
 [b'Top Width LOB' b'ft']
 [b'Top Width Chan' b'ft']
 [b'Top Width ROB' b'ft']
 [b'Alpha' b'']
 [b'Storage Area' b'ft^2']
 [b'Beta' b'']]
        Group: //Geometry/GeomPreprocess
            Group: //Geometry/GeomPreprocess/IBC_CON
    Attributes for //Geometry/GeomPreprocess/IBC_CON:
        MSP: 0
        NIBC: 0
            Group: //Geometry/GeomPreprocess/NODE2ICS
    Attributes for //Geometry/GeomPreprocess/NODE2ICS:
        NUM: 4
                Dataset: //Geometry/GeomPreprocess/NODE2ICS/ICS2NODE
                    Shape: (4,)
                    Dtype: int32
                Dataset: //Geometry/GeomPreprocess/NODE2ICS/NODE2IBC
                    Shape: (4,)
                    Dtype: int32
                Dataset: //Geometry/GeomPreprocess/NODE2ICS/NODE2ICS
                    Shape: (4,)
                    Dtype: int32
                Dataset: //Geometry/GeomPreprocess/NODE2ICS/NODE2NRC
                    Shape: (4,)
                    Dtype: int32
            Group: //Geometry/GeomPreprocess/Node Info
                Dataset: //Geometry/GeomPreprocess/Node Info/Node Attributes
                    Shape: (4,)
                    Dtype: [('River', 'S16'), ('Reach', 'S16'), ('Station', 'S8'), ('Name', 'S16'), ('Type', 'S16'), ('Snet Type', '<i4')]
            Group: //Geometry/GeomPreprocess/Property Tables
                Dataset: //Geometry/GeomPreprocess/Property Tables/Cell Info
                    Shape: (1, 2)
                    Dtype: int32
    Attributes for //Geometry/GeomPreprocess/Property Tables/Cell Info:
        Column=: [b'Starting Index' b'Count']
                Dataset: //Geometry/GeomPreprocess/Property Tables/Cell Value
                    Shape: (22, 3)
                    Dtype: float32
    Attributes for //Geometry/GeomPreprocess/Property Tables/Cell Value:
        Variables: [[b'Elevation' b'ft']
 [b'Volume' b'ft^2']
 [b'Area' b'ft^2']]
                Dataset: //Geometry/GeomPreprocess/Property Tables/XSEC Info
                    Shape: (2, 3)
                    Dtype: int32
    Attributes for //Geometry/GeomPreprocess/Property Tables/XSEC Info:
        Column=: [b'Starting Index' b'Count' b'DS Cell']
                Dataset: //Geometry/GeomPreprocess/Property Tables/XSEC Value
                    Shape: (46, 23)
                    Dtype: float32
    Attributes for //Geometry/GeomPreprocess/Property Tables/XSEC Value:
        Variables: [[b'Elevation' b'ft']
 [b'Area LOB' b'ft^2']
 [b'Area Chan' b'ft^2']
 [b'Area ROB' b'ft^2']
 [b'Area Ineff LOB' b'ft^2']
 [b'Area Ineff Chan' b'ft^2']
 [b'Area Ineff ROB' b'ft^2']
 [b'Conv LOB' b'cfs']
 [b'Conv Chan' b'cfs']
 [b'Conv ROB' b'cfs']
 [b'WP LOB' b'ft']
 [b'WP Chan' b'ft']
 [b'WP ROB' b'ft']
 [b'Mann N LOB' b'']
 [b'Mann N Chan' b'']
 [b'Mann N ROB' b'']
 [b'Top Width' b'ft']
 [b'Top Width LOB' b'ft']
 [b'Top Width Chan' b'ft']
 [b'Top Width ROB' b'ft']
 [b'Alpha' b'']
 [b'Storage Area' b'ft^2']
 [b'Beta' b'']]
            Group: //Geometry/GeomPreprocess/Reach Connections
    Attributes for //Geometry/GeomPreprocess/Reach Connections:
        NRCH: 1
        NROW: 4
                Dataset: //Geometry/GeomPreprocess/Reach Connections/ICSD
                    Shape: (1,)
                    Dtype: int32
                Dataset: //Geometry/GeomPreprocess/Reach Connections/ICSU
                    Shape: (1,)
                    Dtype: int32
                Dataset: //Geometry/GeomPreprocess/Reach Connections/IDSTYP
                    Shape: (1,)
                    Dtype: int32
                Dataset: //Geometry/GeomPreprocess/Reach Connections/IRDCON
                    Shape: (1, 5)
                    Dtype: int32
                Dataset: //Geometry/GeomPreprocess/Reach Connections/IRUCON
                    Shape: (1, 5)
                    Dtype: int32
                Dataset: //Geometry/GeomPreprocess/Reach Connections/IUSTYP
                    Shape: (1,)
                    Dtype: int32
                Dataset: //Geometry/GeomPreprocess/Reach Connections/NDCON
                    Shape: (1, 5)
                    Dtype: int32
                Dataset: //Geometry/GeomPreprocess/Reach Connections/NNDCON
                    Shape: (1,)
                    Dtype: int32
                Dataset: //Geometry/GeomPreprocess/Reach Connections/NNUCON
                    Shape: (1,)
                    Dtype: int32
                Dataset: //Geometry/GeomPreprocess/Reach Connections/NUCON                Dataset: //Geometry/GeomPreprocess/Reach Connections/NUCON
                    Shape: (1, 5)
                    Dtype: int32
                Dataset: //Geometry/GeomPreprocess/Reach Connections/QSIGND
                    Shape: (1, 5)
                    Dtype: float32
                Dataset: //Geometry/GeomPreprocess/Reach Connections/QSIGNU
                    Shape: (1, 5)
                    Dtype: float32
            Group: //Geometry/GeomPreprocess/Skyline
    Attributes for //Geometry/GeomPreprocess/Skyline:
        NROW: 4
                Dataset: //Geometry/GeomPreprocess/Skyline/ICIDX
                    Shape: (3,)
                    Dtype: int32
                Dataset: //Geometry/GeomPreprocess/Skyline/ICSP
                    Shape: (3,)
                    Dtype: int32
                Dataset: //Geometry/GeomPreprocess/Skyline/ICSPRW
                    Shape: (4,)
                    Dtype: int32
                Dataset: //Geometry/GeomPreprocess/Skyline/IDIA
                    Shape: (4,)
                    Dtype: int32
                Dataset: //Geometry/GeomPreprocess/Skyline/IHIGH
                    Shape: (4,)
                    Dtype: int32
                Dataset: //Geometry/GeomPreprocess/Skyline/ILEFT
                    Shape: (4,)
                    Dtype: int32
                Dataset: //Geometry/GeomPreprocess/Skyline/IRIGHT
                    Shape: (4,)
                    Dtype: int32
                Dataset: //Geometry/GeomPreprocess/Skyline/IROWZ
                    Shape: (2,)
                    Dtype: int32
                Dataset: //Geometry/GeomPreprocess/Skyline/IROWZSA
                    Shape: (1,)
                    Dtype: int32
            Group: //Geometry/GeomPreprocess/Storage Areas
                Dataset: //Geometry/GeomPreprocess/Storage Areas/NSAC
                    Shape: (1,)
                    Dtype: int32
            Group: //Geometry/GeomPreprocess/XSEC Properties
    Attributes for //Geometry/GeomPreprocess/XSEC Properties:
        ICS: 2
                Dataset: //Geometry/GeomPreprocess/XSEC Properties/ELV
                    Shape: (2,)
                    Dtype: float32
                Dataset: //Geometry/GeomPreprocess/XSEC Properties/Manning Flow Table
                    Shape: (2,)
                    Dtype: int32
                Dataset: //Geometry/GeomPreprocess/XSEC Properties/Manning Seasonal Table
                    Shape: (2,)
                    Dtype: int32
                Dataset: //Geometry/GeomPreprocess/XSEC Properties/Priessman Elevation
                    Shape: (2,)
                    Dtype: float32
                Dataset: //Geometry/GeomPreprocess/XSEC Properties/Priessman Width
                    Shape: (2,)
                    Dtype: float32
                Dataset: //Geometry/GeomPreprocess/XSEC Properties/SLGCH
                    Shape: (2,)
                    Dtype: float32
                Dataset: //Geometry/GeomPreprocess/XSEC Properties/SLGV
                    Shape: (2,)
                    Dtype: float32
                Dataset: //Geometry/GeomPreprocess/XSEC Properties/Top of Pilot Channel
                    Shape: (2,)
                    Dtype: float32
                Dataset: //Geometry/GeomPreprocess/XSEC Properties/ZINC
                    Shape: (2,)
                    Dtype: float32
                Dataset: //Geometry/GeomPreprocess/XSEC Properties/ZMN
                    Shape: (2,)
                    Dtype: float32
                Dataset: //Geometry/GeomPreprocess/XSEC Properties/ZSTRT
                    Shape: (2,)
                    Dtype: float32
                Dataset: //Geometry/GeomPreprocess/XSEC Properties/Z_OB_Store
                    Shape: (2,)
                    Dtype: float32
        Group: //Geometry/Land Cover (Manning's n)
            Dataset: //Geometry/Land Cover (Manning's n)/Attributes
                Shape: (1,)
                Dtype: [('Name', 'S12'), ('2D Area Name', 'S11')]
            Dataset: //Geometry/Land Cover (Manning's n)/Calibration Table
                Shape: (17,)
                Dtype: [('Land Cover Name', 'S28'), ("Base Manning's n Value", '<f4'), ('Main Channel', '<f4')]
            Dataset: //Geometry/Land Cover (Manning's n)/External Faces
                Shape: (1116,)
                Dtype: [('Region ID', '<i4'), ('Face Index', '<i4')]
            Dataset: //Geometry/Land Cover (Manning's n)/Internal Cells
                Shape: (694,)
                Dtype: [('Region ID', '<i4'), ('Cell Index', '<i4')]
            Dataset: //Geometry/Land Cover (Manning's n)/Internal Faces
                Shape: (862,)
                Dtype: [('Region ID', '<i4'), ('Face Index', '<i4')]
            Dataset: //Geometry/Land Cover (Manning's n)/Polygon Info
                Shape: (1, 4)
                Dtype: int32
    Attributes for //Geometry/Land Cover (Manning's n)/Polygon Info:
        Column: [b'Point Starting Index' b'Point Count' b'Part Starting Index'
 b'Part Count']
        Feature Type: b'Polygon'
        Row: b'Feature'
            Dataset: //Geometry/Land Cover (Manning's n)/Polygon Parts
                Shape: (1, 2)
                Dtype: int32
    Attributes for //Geometry/Land Cover (Manning's n)/Polygon Parts:
        Column: [b'Point Starting Index' b'Point Count']
        Row: b'Part'
            Dataset: //Geometry/Land Cover (Manning's n)/Polygon Points
                Shape: (556, 2)
                Dtype: float64
    Attributes for //Geometry/Land Cover (Manning's n)/Polygon Points:
        Column: [b'X' b'Y']
        Row: b'Points'
        Group: //Geometry/Structures
    Attributes for //Geometry/Structures:
        Bridge/Culvert Count: 0
        Connection Count: 1
        Has Bridge Opening (2D): 0
        Inline Structure Count: 0
        Lateral Structure Count: 0
            Dataset: //Geometry/Structures/Attributes
                Shape: (1,)
                Dtype: [('Type', 'S16'), ('Mode', 'S18'), ('River', 'S16'), ('Reach', 'S16'), ('RS', 'S8'), ('Connection', 'S16'), ('Groupname', 'S45'), ('US Type', 'S16'), ('US River', 'S16'), ('US Reach', 'S16'), ('US RS', 'S8'), ('US SA/2D', 'S16'), ('DS Type', 'S16'), ('DS River', 'S16'), ('DS Reach', 'S16'), ('DS RS', 'S8'), ('DS SA/2D', 'S16'), ('Node Name', 'S16'), ('Description', 'S512'), ('Last Edited', 'S18'), ('Upstream Distance', '<f4'), ('Weir Width', '<f4'), ('Weir Max Submergence', '<f4'), ('Weir Min Elevation', '<f4'), ('Weir Coef', '<f4'), ('Weir Shape', 'S16'), ('Weir Design EG Head', '<f4'), ('Weir Design Spillway HT', '<f4'), ('Weir US Slope', '<f4'), ('Weir DS Slope', '<f4'), ('Linear Routing Positive Coef', '<f4'), ('Linear Routing Negative Coef', '<f4'), ('Linear Routing Elevation', '<f4'), ('LW HW Position', '<i4'), ('LW TW Position', '<i4'), ('LW HW Distance', '<f4'), ('LW TW Distance', '<f4'), ('LW Span Multiple', 'u1'), ('Use 2D for Overflow', 'u1'), ('Use Velocity into 2D', 'u1'), ('Hagers Weir Coef', '<f4'), ('Hagers Height', '<f4'), ('Hagers Slope', '<f4'), ('Hagers Angle', '<f4'), ('Hagers Radius', '<f4'), ('Use WS for Weir Reference', 'u1'), ('Pilot Flow', '<f4'), ('Culvert Groups', '<i4'), ('Culverts Flap Gates', '<i4'), ('Gate Groups', '<i4'), ('HTAB FF Points', '<i4'), ('HTAB RC Count', '<i4'), ('HTAB RC Points', '<i4'), ('HTAB HW Max', '<f4'), ('HTAB TW Max', '<f4'), ('HTAB Max Flow', '<f4'), ('Cell Spacing Near', '<f4'), ('Cell Spacing Far', '<f4'), ('Near Repeats', '<i4'), ('Protection Radius', 'u1'), ('Use Friction in Momentum', 'u1'), ('Use Weight in Momentum', 'u1'), ('Use Critical US', 'u1'), ('Use EG for Pressure Criteria', 'u1'), ('Ice Option', '<i4'), ('Weir Skew', '<f4'), ('Pier Skew', '<f4'), ('BR Contraction', '<f4'), ('BR Expansion', '<f4'), ('BR Pier K', '<f4'), ('BR Pier Elev', '<f4'), ('BR Struct K', '<f4'), ('BR Struct Elev', '<f4'), ('BR Struct Mann', '<f4'), ('BR US Left Bank', '<f4'), ('BR US Right Bank', '<f4'), ('BR DS Left Bank', '<f4'), ('BR DS Right Bank', '<f4'), ('XS US Left Bank', '<f4'), ('XS US Right Bank', '<f4'), ('XS DS Left Bank', '<f4'), ('XS DS Right Bank', '<f4'), ('US Ineff Left Sta', '<f4'), ('US Ineff Left Elev', '<f4'), ('US Ineff Right Sta', '<f4'), ('US Ineff Right Elev', '<f4'), ('DS Ineff Left Sta', '<f4'), ('DS Ineff Left Elev', '<f4'), ('DS Ineff Right Sta', '<f4'), ('DS Ineff Right Elev', '<f4'), ('Use Override HW Connectivity', 'u1'), ('Use Override TW Connectivity', 'u1'), ('Use RC Family', 'u1'), ('Use Override HTabIBCurves', 'u1'), ('SNN ID', '<i4'), ('Default Centerline', 'u1')]
            Dataset: //Geometry/Structures/Bridge Coefficient Attributes
                Shape: (1,)
                Dtype: [('Structure ID', '<i4'), ('Method', '<i4'), ('Low Standard Step', 'u1'), ('Use Momentum', 'u1'), ('Momentum Cd', '<f4'), ('Use Yarnell', 'u1'), ('Yarnell K', '<f4'), ('Use WSPro', 'u1'), ('WSPro El Top L', '<f4'), ('WSPro El Top R', '<f4'), ('WSPro El Toe L', '<f4'), ('WSPro El Toe R', '<f4'), ('WSPro Type', '<i4'), ('WSPro Slope', '<f4'), ('WSPro Width', '<f4'), ('WSPro Centroid Sta', '<f4'), ('WSPro Wing Wall Type', '<i4'), ('WSPro Wing Wall Width', '<f4'), ('WSPro Wing Wall Angle', '<f4'), ('WSPro Wing Wall Radius', '<f4'), ('WSPro Guide Banks Type', '<i4'), ('WSPro Guide Banks Length', '<f4'), ('WSPro Guide Banks Offset', '<f4'), ('WSPro Guide Banks Angle', '<f4'), ('WSPro Piers Continuous', 'u1'), ('WSPro Sf Geom Mean', 'u1'), ('WSPro Use Tables', 'u1'), ('WSPro Use C/E Approach', 'u1'), ('WSPro Use C/E Guide Banks', 'u1'), ('WSPro Use C/E US XS', 'u1'), ('WSPro Use C/E US BR', 'u1'), ('WSPro Use C/E DS BR', 'u1'), ('Use High Standard Step', 'u1'), ('Submerged Inlet Cd', '<f4'), ('Submerged Inlet-Outlet Cd', '<f4'), ('Low Cord Weir Check', '<f4')]
            Dataset: //Geometry/Structures/Centerline Info
                Shape: (1, 4)
                Dtype: int32
    Attributes for //Geometry/Structures/Centerline Info:
        Column: [b'Point Starting Index' b'Point Count' b'Part Starting Index'
 b'Part Count']
        Feature Type: b'Polyline'
        Row: b'Feature'
            Dataset: //Geometry/Structures/Centerline Parts
                Shape: (1, 2)
                Dtype: int32
    Attributes for //Geometry/Structures/Centerline Parts:
        Column: [b'Point Starting Index' b'Point Count']
        Row: b'Part'
            Dataset: //Geometry/Structures/Centerline Points
                Shape: (41, 2)
                Dtype: float64
    Attributes for //Geometry/Structures/Centerline Points:
        Column: [b'X' b'Y']
        Row: b'Points'
            Group: //Geometry/Structures/Gate Groups
                Dataset: //Geometry/Structures/Gate Groups/Attributes
                    Shape: (1,)
                    Dtype: [('Structure ID', '<i4'), ('Name', 'S12'), ('Width', '<f4'), ('Height', '<f4'), ('Invert', '<f4'), ('Method', '<i4'), ('Sluice Coef', '<f4'), ('Radial Coef', '<f4'), ('Trunion Exponent', '<f4'), ('Open Exponent', '<f4'), ('Head Exponent', '<f4'), ('Trunion Height', '<f4'), ('Orifice Coef', '<f4'), ('Head Reference', '<i4'), ('Spillway Shape', 'S16'), ('Weir Coef', '<f4'), ('Design Head', '<f4'), ('Design Height', '<f4'), ('Use Rehbok', 'u1'), ('Use Kindsvater Carter', 'u1'), ('Kindsvater Carter Method', '<i4'), ('User Curve Set', 'S64'), ('Openings', '<i4')]
                Group: //Geometry/Structures/Gate Groups/Openings
    Attributes for //Geometry/Structures/Gate Groups/Openings:
        Bridge/Culvert Count: 0
        Connection Count: 2
        Inline Structure Count: 0
        Lateral Structure Count: 0
                    Dataset: //Geometry/Structures/Gate Groups/Openings/Attributes
                        Shape: (2,)
                        Dtype: [('Structure ID', '<i4'), ('Gate Group ID', '<i4'), ('Name', 'S32'), ('Station', '<f4'), ('Default Centerline', 'u1')]
                    Dataset: //Geometry/Structures/Gate Groups/Openings/Centerline Info
                        Shape: (2, 4)
                        Dtype: int32
    Attributes for //Geometry/Structures/Gate Groups/Openings/Centerline Info:
        Column: [b'Point Starting Index' b'Point Count' b'Part Starting Index'
 b'Part Count']
        Feature Type: b'Polyline'
        Row: b'Feature'
                    Dataset: //Geometry/Structures/Gate Groups/Openings/Centerline Parts
                        Shape: (2, 2)
                        Dtype: int32
    Attributes for //Geometry/Structures/Gate Groups/Openings/Centerline Parts:
        Column: [b'Point Starting Index' b'Point Count']
        Row: b'Part'
                    Dataset: //Geometry/Structures/Gate Groups/Openings/Centerline Points
                        Shape: (4, 2)
                        Dtype: float64
    Attributes for //Geometry/Structures/Gate Groups/Openings/Centerline Points:
        Column: [b'X' b'Y']
        Row: b'Points'
            Dataset: //Geometry/Structures/Profile Data
                Shape: (6, 2)
                Dtype: float32
            Group: //Geometry/Structures/Property Tables
    Attributes for //Geometry/Structures/Property Tables:
        NRCF: 0
            Dataset: //Geometry/Structures/Table Info
                Shape: (1,)
                Dtype: [('Centerline Profile (Index)', '<i4'), ('Centerline Profile (Count)', '<i4'), ('US XS Profile (Index)', '<i4'), ('US XS Profile (Count)', '<i4'), ('US BR Profile (Index)', '<i4'), ('US BR Profile (Count)', '<i4'), ('US BR Weir Profile (Index)', '<i4'), ('US BR Weir Profile (Count)', '<i4'), ('US BR Lid Profile (Index)', '<i4'), ('US BR Lid Profile (Count)', '<i4'), ('DS XS Profile (Index)', '<i4'), ('DS XS Profile (Count)', '<i4'), ('DS BR Profile (Index)', '<i4'), ('DS BR Profile (Count)', '<i4'), ('DS BR Weir Profile (Index)', '<i4'), ('DS BR Weir Profile (Count)', '<i4'), ('DS BR Lid Profile (Index)', '<i4'), ('DS BR Lid Profile (Count)', '<i4'), ('US XS Mann (Index)', '<i4'), ('US XS Mann (Count)', '<i4'), ('US BR Mann (Index)', '<i4'), ('US BR Mann (Count)', '<i4'), ('DS XS Mann (Index)', '<i4'), ('DS XS Mann (Count)', '<i4'), ('DS BR Mann (Index)', '<i4'), ('DS BR Mann (Count)', '<i4'), ('RC (Index)', '<i4'), ('RC (Count)', '<i4')]

    Group: //Plan Data
        Group: //Plan Data/Breach Data
            Dataset: //Plan Data/Breach Data/Bottom Widths
                Shape: (1,)
                Dtype: float32
            Dataset: //Plan Data/Breach Data/Names
                Shape: (1,)
                Dtype: |S43
            Dataset: //Plan Data/Breach Data/Side Slopes
                Shape: (1, 2)
                Dtype: float32
        Group: //Plan Data/Plan Information
    Attributes for //Plan Data/Plan Information:
        Base Output Interval: b'10MIN'
        Computation Time Courant Method: b'Representative Length/Velocity'
        Computation Time Step Base: b'20SEC'
        Computation Time Step Count To Double: 4
        Computation Time Step Max Courant: 1.0
        Computation Time Step Max Doubling: 1
        Computation Time Step Max Halving: 0
        Computation Time Step Min Courant: 0.44999998807907104
        Flow Filename: b'BaldEagleDamBrk.u03'
        Flow Title: b'Gridded Precipitation'
        Geometry Filename: b'BaldEagleDamBrk.g09'
        Geometry Title: b'Single 2D Area - Internal Dam Structure'
        Plan Filename: b'BaldEagleDamBrk.p06'
        Plan Name: b'Gridded Precip - Infiltration'
        Plan ShortID: b'Grid Precip Infiltration'
        Plan Title: b'Gridded Precip - Infiltration'
        Project Filename: b'C:\\GH\\ras-commander\\examples\\example_projects\\BaldEagleCrkMulti2D\\BaldEagleDamBrk.prj'
        Project Title: b'Bald Eagle Creek Example Dam Break Study'
        Simulation End Time: b'14Sep2018 00:00:00'
        Simulation Start Time: b'09Sep2018 00:00:00'
        Time Window: b'09Sep2018 00:00:00 to 14Sep2018 00:00:00'
            Dataset: //Plan Data/Plan Information/Debug Commands
                Shape: (3,)
                Dtype: |S1
        Group: //Plan Data/Plan Parameters
    Attributes for //Plan Data/Plan Parameters:
        1D Cores: 0
        1D Flow Tolerance: nan
        1D Maximum Iterations: 20
        1D Maximum Iterations Without Improvement: 0
        1D Maximum Water Surface Error To Abort: 100.0
        1D Methodology: b'Finite Difference'
        1D Storage Area Elevation Tolerance: 0.019999999552965164
        1D Theta: 1.0
        1D Theta Warmup: 1.0
        1D Water Surface Elevation Tolerance: 0.019999999552965164
        1D-2D Flow Tolerance: 1.0
        1D-2D Gate Flow Submergence Decay Exponent: 1.0
        1D-2D IS Stablity Factor: 1.0
        1D-2D LS Stablity Factor: 2.0
        1D-2D Maximum Iterations: 0
        1D-2D Maximum Number of Time Slices: 20
        1D-2D Minimum Flow Tolerance: nan
        1D-2D Minimum Time Step for Slicing(hours): 0.0
        1D-2D Number of Warmup Steps: 0
        1D-2D Warmup Time Step (hours): 0.0
        1D-2D Water Surface Tolerance: 0.019999999552965164
        1D-2D Weir Flow Submergence Decay Exponent: 1.0
        2D Advanced Convergence: [0]
        2D Boundary Condition Ramp Up Fraction: [0.5]
        2D Boundary Condition Volume Check: [b'False']
        2D Cores (per mesh): [12]
        2D Coriolis: b'False'
        2D Equation Set: [b'Diffusion Wave']
        2D Initial Conditions Ramp Up Time (hrs): [0.]
        2D Latitude for Coriolis: [3.4028235e+38]
        2D Longitudinal Mixing Coefficient: [0.]
        2D Matrix Solver: [b'Pardiso']
        2D Maximum Iterations: [20]
        2D Names: [b'BaldEagleCr']
        2D Number of Time Slices: [1]
        2D Only: b'True'
        2D Smagorinsky Mixing Coefficient: [0.]
        2D Theta: [1.]
        2D Theta Warmup: [1.]
        2D Transverse Mixing Coefficient: [0.]
        2D Turbulence Formulation: [b'None']
        2D Volume Tolerance: [0.01]
        2D WS Max Tolerance: [0.]
        2D WS RMS Tolerance: [0.]
        2D WS Stalling Tolerance: [0.]
        2D Water Surface Tolerance: [0.01]
        Friction Slope Average Method (BR): b'Average Conveyance'
        Friction Slope Average Method (XS): b'Average Friction Slope'
        Gravity: 32.17399978637695
        HDF Additional Output Variables: [b'Cell Velocity' b'Face Eddy Viscosity' b'Face Flow'
 b'Face Water Surface' b'Face Shear Stress']
        HDF Chunk Size: 1.0
        HDF Compression: 1
        HDF Fixed Rows: 1
        HDF Flush Buffer: b'False'
        HDF Spatial Parts: 1
        HDF Use Max Rows: 0
        HDF Write Time Slices: b'False'
        HDF Write Warmup: b'False'
        Pardiso Solver: b'False'

    Group: //Results
        Group: //Results/Summary
            Dataset: //Results/Summary/Compute Messages (rtf)
                Shape: (1,)
                Dtype: |S2404
            Dataset: //Results/Summary/Compute Messages (text)
                Shape: (1,)
                Dtype: |S1695
            Dataset: //Results/Summary/Compute Processes
                Shape: (5,)
                Dtype: [('Process', 'S34'), ('Filename', 'S64'), ('File Date', 'S21'), ('File Size', '<i4'), ('File Version', 'S7'), ('Arguments', 'S205'), ('Compute Time', 'S12'), ('Compute Time (ms)', '<i4')]
        Group: //Results/Unsteady
    Attributes for //Results/Unsteady:
        Plan Title: b'Gridded Precip - Infiltration'
        Program Name: b'HEC-RAS - River Analysis System'
        Program Version: b'HEC-RAS 6.6 September 2024'
        Project File Name: b'c:\\GH\\ras-commander\\examples\\example_projects\\BaldEagleCrkMulti2D\\BaldEagleDamBrk.prj'
        Project Title: b'Bald Eagle Creek Example Dam Break Study'
        Short ID: b'Grid Precip Infiltration'
        Simulation Time Window: b'08Sep2018 2400 to 13Sep2018 2400'
        Type of Run: b'Unsteady Flow Analysis'
            Group: //Results/Unsteady/Geometry Info
                Dataset: //Results/Unsteady/Geometry Info/2D Area(s)
                    Shape: (1,)
                    Dtype: |S64
            Group: //Results/Unsteady/Output
                Group: //Results/Unsteady/Output/Output Blocks
                    Group: //Results/Unsteady/Output/Output Blocks/Base Output
    Attributes for //Results/Unsteady/Output/Output Blocks/Base Output:
        Output Block Name: [b'Base Output']
                        Group: //Results/Unsteady/Output/Output Blocks/Base Output/Summary Output
                            Group: //Results/Unsteady/Output/Output Blocks/Base Output/Summary Output/2D Flow Areas
                                Group: //Results/Unsteady/Output/Output Blocks/Base Output/Summary Output/2D Flow Areas/BaldEagleCr
    Attributes for //Results/Unsteady/Output/Output Blocks/Base Output/Summary Output/2D Flow Areas/BaldEagleCr:
        Cum Net Precip Inches: 1.707614779472351
        Vol Accounting: b'Volume Accounting in Acre Feet'
        Vol Accounting Ending Volume: 124445.203125
        Vol Accounting Error: 0.46921461820602417
        Vol Accounting Error Percentage: 0.0003311674518045038
        Vol Accounting External Inflow: 141685.0
        Vol Accounting External Outflow: 17240.263671875
        Vol Accounting Internal Inflow: 0.0
        Vol Accounting Internal Outflow: 0.0
        Vol Accounting Starting Volume: 0.0
        Vol Acct. Inflow from Net Precip: 3756.872802734375
                                    Dataset: //Results/Unsteady/Output/Output Blocks/Base Output/Summary Output/2D Flow Areas/BaldEagleCr/Cell Cumulative Iter Lookup
                                        Shape: (1, 2)
                                        Dtype: int32
    Attributes for //Results/Unsteady/Output/Output Blocks/Base Output/Summary Output/2D Flow Areas/BaldEagleCr/Cell Cumulative Iter Lookup:
        Column 1: b'Cell Number'
        Column 2: b'Cumulative number of Max Iterations'
        Number of different Cells that went to Maximum Iterations: 0
                                    Dataset: //Results/Unsteady/Output/Output Blocks/Base Output/Summary Output/2D Flow Areas/BaldEagleCr/Cell Cumulative Iteration
                                        Shape: (19597,)
                                        Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/Base Output/Summary Output/2D Flow Areas/BaldEagleCr/Cell Cumulative Iteration:
        Can Interpolate: b'False'
        Can Plot: b'True'
        Cell: b'Number of times given cell went to max iterations'
        Coverage: b'Average'
        Location: b'Cells'
        Maximum Value of Data Set: 0.0
        Minimum Value of Data Set: 0.0
        Name: b'Cumulative Max Iterations'
        Orientation: b'Scalar'
        Row: 0
        Units: b'Iterations'
                                    Dataset: //Results/Unsteady/Output/Output Blocks/Base Output/Summary Output/2D Flow Areas/BaldEagleCr/Cell Last Iteration
                                        Shape: (19597,)
                                        Dtype: int32
    Attributes for //Results/Unsteady/Output/Output Blocks/Base Output/Summary Output/2D Flow Areas/BaldEagleCr/Cell Last Iteration:
        Cell: b'Number of times given cell is last cell to converge or it went to max iterations'
                                    Dataset: //Results/Unsteady/Output/Output Blocks/Base Output/Summary Output/2D Flow Areas/BaldEagleCr/Cell Maximum Water Surface Error
                                        Shape: (2, 19597)
                                        Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/Base Output/Summary Output/2D Flow Areas/BaldEagleCr/Cell Maximum Water Surface Error:
        Can Interpolate: b'False'
        Can Plot: b'True'
        Coverage: b'Average'
        Location: b'Cells'
        Max Time: 5.0
        Maximum Value of Data Set: 0.009991085156798363
        Minimum Value of Data Set: 0.0
        Name: b'Water Surface Error Maximum'
        Orientation: b'Scalar'
        Row: 0
        Row Variables: [b'WSEL Error' b'Time']
        Units: b'ft'
        Units per row: [b'ft' b'days']
                                    Dataset: //Results/Unsteady/Output/Output Blocks/Base Output/Summary Output/2D Flow Areas/BaldEagleCr/Maximum Face Courant
                                        Shape: (2, 37594)
                                        Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/Base Output/Summary Output/2D Flow Areas/BaldEagleCr/Maximum Face Courant:
        Can Interpolate: b'False'
        Can Plot: b'True'
        Coverage: b'Average'
        Location: b'Faces'
        Maximum Value of Data Set: 0.6819884181022644
        Minimum Value of Data Set: 0.0
        Name: b'Face Courant Maximum'
        Orientation: b'Scalar'
        Row: 0
        Rows Variables: [b'Courant Face' b'Time']
        Units: b'vel*dt/length'
        Units per row: [b'vel*dt/length' b'days']
                                    Dataset: //Results/Unsteady/Output/Output Blocks/Base Output/Summary Output/2D Flow Areas/BaldEagleCr/Maximum Face Shear Stress
                                        Shape: (2, 37594)
                                        Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/Base Output/Summary Output/2D Flow Areas/BaldEagleCr/Maximum Face Shear Stress:
        Max Time: 0.0
        Max Value: 0.0
        Min Time: 0.0
        Min Value: 0.0
        Rows Variables: [b'Shear Stress' b'Time']
        Units: [b'PSF' b'days']
                                    Dataset: //Results/Unsteady/Output/Output Blocks/Base Output/Summary Output/2D Flow Areas/BaldEagleCr/Maximum Face Velocity
                                        Shape: (2, 37594)
                                        Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/Base Output/Summary Output/2D Flow Areas/BaldEagleCr/Maximum Face Velocity:
        Can Interpolate: b'True'
        Can Plot: b'False'
        Coverage: b'Average'
        Location: b'Faces'
        Max Time: 5.0
        Maximum Value of Data Set: 10.975321769714355
        Min Time: 0.0
        Min Value: -13.62198543548584
        Minimum Value of Data Set: -13.62198543548584
        Name: b'Face Velocity Maximum'
        Orientation: b'Scalar'
        Row: 0
        Rows Variables: [b'Velocity' b'Time']
        Units: b'ft/s'
        Units per row: [b'ft/s' b'days']
                                    Dataset: //Results/Unsteady/Output/Output Blocks/Base Output/Summary Output/2D Flow Areas/BaldEagleCr/Maximum Water Surface
                                        Shape: (2, 19597)
                                        Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/Base Output/Summary Output/2D Flow Areas/BaldEagleCr/Maximum Water Surface:
        Max Time: 5.0
        Max Value: 848.2053833007812
        Min Time: 0.9995370507240295
        Min Value: 535.5850219726562
        Rows Variables: [b'WSEL' b'Time']
        Units: [b'ft' b'days']
                                    Dataset: //Results/Unsteady/Output/Output Blocks/Base Output/Summary Output/2D Flow Areas/BaldEagleCr/Minimum Face Velocity
                                        Shape: (2, 37594)
                                        Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/Base Output/Summary Output/2D Flow Areas/BaldEagleCr/Minimum Face Velocity:
        Can Interpolate: b'True'
        Can Plot: b'False'
        Coverage: b'Average'
        Location: b'Faces'
        Max Time: 0.00023148149193730205
        Maximum Value of Data Set: 0.0
        Min Time: 0.00023148149193730205
        Min Value: -1.0384738445281982
        Minimum Value of Data Set: -1.0384738445281982
        Name: b'Face Velocity Minimum'
        Orientation: b'Scalar'
        Row: 0
        Rows Variables: [b'velocity' b'Time']
        Units: b'ft/s'
        Units per row: [b'ft/s' b'days']
                                    Dataset: //Results/Unsteady/Output/Output Blocks/Base Output/Summary Output/2D Flow Areas/BaldEagleCr/Minimum Water Surface
                                        Shape: (2, 19597)
                                        Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/Base Output/Summary Output/2D Flow Areas/BaldEagleCr/Minimum Water Surface:
        Max Time: 0.00023148149193730205
        Max Value: 845.14892578125
        Min Time: 0.00023148149193730205
        Min Value: 527.1326904296875
        Rows Variables: [b'WSEL' b'Time']
        Units: [b'ft' b'days']
                                    Dataset: //Results/Unsteady/Output/Output Blocks/Base Output/Summary Output/2D Flow Areas/BaldEagleCr/Starting Differences Velocity
                                        Shape: (3, 37594)
                                        Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/Base Output/Summary Output/2D Flow Areas/BaldEagleCr/Starting Differences Velocity:
        Row0: b'Prior Profile Velocity'
        Row1: b'First Time Step Velocity'
        Row2: b'Difference'
        Units: b'ft/s'
                                    Dataset: //Results/Unsteady/Output/Output Blocks/Base Output/Summary Output/2D Flow Areas/BaldEagleCr/Starting Differences WSE
                                        Shape: (3, 19597)
                                        Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/Base Output/Summary Output/2D Flow Areas/BaldEagleCr/Starting Differences WSE:
        Row0: b'Prior Profile WSE'
        Row1: b'First Time Step WSE'
        Row2: b'Difference'
        Units: b'ft'
                        Group: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series
                            Group: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas
                                Group: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr
                                    Group: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/2D Hyd Conn
                                        Group: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/2D Hyd Conn/Sayers Dam
    Attributes for //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/2D Hyd Conn/Sayers Dam:
        Node Pointer: 2
                                            Group: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/2D Hyd Conn/Sayers Dam/Gate Groups
                                                Dataset: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/2D Hyd Conn/Sayers Dam/Gate Groups/Gate #1
                                                    Shape: (721, 6)
                                                    Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/2D Hyd Conn/Sayers Dam/Gate Groups/Gate #1:
        Variable_Unit: [[b'Gate Flow' b'cfs']
 [b'Gate Opening' b'ft']
 [b'Stage HW' b'ft']
 [b'Stage TW' b'ft']
 [b'Gate Area' b'ft^2']
 [b'Gate Submergence' b'']]
                                            Group: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/2D Hyd Conn/Sayers Dam/Geometric Info
                                                Group: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/2D Hyd Conn/Sayers Dam/Geometric Info/Gates and Culverts
                                                    Group: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/2D Hyd Conn/Sayers Dam/Geometric Info/Gates and Culverts/Gate #1
                                                        Dataset: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/2D Hyd Conn/Sayers Dam/Geometric Info/Gates and Culverts/Gate #1/Gate CL Cell HW
                                                            Shape: (2,)
                                                            Dtype: int32
                                                        Dataset: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/2D Hyd Conn/Sayers Dam/Geometric Info/Gates and Culverts/Gate #1/Gate CL Cell TW
                                                            Shape: (2,)
                                                            Dtype: int32
                                                Dataset: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/2D Hyd Conn/Sayers Dam/Geometric Info/Headwater Face Points
                                                    Shape: (28,)
                                                    Dtype: int32
                                                Dataset: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/2D Hyd Conn/Sayers Dam/Geometric Info/Headwater Face Points Stations
                                                    Shape: (28,)
                                                    Dtype: float32
                                                Dataset: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/2D Hyd Conn/Sayers Dam/Geometric Info/Tailwater Face Points
                                                    Shape: (28,)
                                                    Dtype: int32
                                                Dataset: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/2D Hyd Conn/Sayers Dam/Geometric Info/Tailwater Face Points Stations
                                                    Shape: (28,)
                                                    Dtype: float32
                                            Group: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/2D Hyd Conn/Sayers Dam/HW TW Cells
                                                Dataset: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/2D Hyd Conn/Sayers Dam/HW TW Cells/Water Surface HW Cells
                                                    Shape: (721, 27)
                                                    Dtype: float32
                                                Dataset: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/2D Hyd Conn/Sayers Dam/HW TW Cells/Water Surface TW Cells
                                                    Shape: (721, 27)
                                                    Dtype: float32
                                            Group: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/2D Hyd Conn/Sayers Dam/HW TW Segments
    Attributes for //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/2D Hyd Conn/Sayers Dam/HW TW Segments:
        HW TW Segments: b'Structure Segments Between any HW and/or TW Intersection'
                                                Dataset: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/2D Hyd Conn/Sayers Dam/HW TW Segments/Flow
                                                    Shape: (721, 28)
                                                    Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/2D Hyd Conn/Sayers Dam/HW TW Segments/Flow:
        Flow: b'Flow Across the given Segment for the Time Step'
        Units: b'cfs'
                                                Dataset: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/2D Hyd Conn/Sayers Dam/HW TW Segments/HW TW Station
                                                    Shape: (28,)
                                                    Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/2D Hyd Conn/Sayers Dam/HW TW Segments/HW TW Station:
        HW TW Station: b'Starting/Ending station for given segment'
                                                Dataset: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/2D Hyd Conn/Sayers Dam/HW TW Segments/Headwater Cells
                                                    Shape: (27,)
                                                    Dtype: |S10
    Attributes for //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/2D Hyd Conn/Sayers Dam/HW TW Segments/Headwater Cells:
        Headwater Cells: b'The given Segment is inside of this Cell'
                                                Dataset: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/2D Hyd Conn/Sayers Dam/HW TW Segments/Tailwater Cells
                                                    Shape: (27,)
                                                    Dtype: |S10
    Attributes for //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/2D Hyd Conn/Sayers Dam/HW TW Segments/Tailwater Cells:
        Tailwater Cells: b'The given Segment is inside of this Cell'
                                                Dataset: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/2D Hyd Conn/Sayers Dam/HW TW Segments/Water Surface HW
                                                    Shape: (721, 28)
                                                    Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/2D Hyd Conn/Sayers Dam/HW TW Segments/Water Surface HW:
        Units: b'ft'
        Water Surface HW: b'WSEL on HW side for given Station Location and Time Step'
                                                Dataset: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/2D Hyd Conn/Sayers Dam/HW TW Segments/Water Surface TW
                                                    Shape: (721, 28)
                                                    Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/2D Hyd Conn/Sayers Dam/HW TW Segments/Water Surface TW:
        Units: b'ft'
        Water Surface TW: b'WSEL on TW side for given Station Location and Time Step'
                                            Dataset: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/2D Hyd Conn/Sayers Dam/Headwater Cells
                                                Shape: (27,)
                                                Dtype: int32
                                            Dataset: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/2D Hyd Conn/Sayers Dam/Structure Variables
                                                Shape: (721, 5)
                                                Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/2D Hyd Conn/Sayers Dam/Structure Variables:
        Starting Weir Sta: -0.07999999821186066
        Variable_Unit: [[b'Total Flow' b'cfs']
 [b'Weir Flow' b'cfs']
 [b'Stage HW' b'ft']
 [b'Stage TW' b'ft']
 [b'Total Gate Flow' b'cfs']]
        Weir Sta for WS HW: 5268.0
        Weir Sta for WS TW: 5268.0
                                            Dataset: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/2D Hyd Conn/Sayers Dam/Tailwater Cells
                                                Shape: (27,)
                                                Dtype: int32
                                    Group: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Boundary Conditions
                                        Dataset: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Boundary Conditions/DS2NormalD
                                            Shape: (721, 2)
                                            Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Boundary Conditions/DS2NormalD:
        2D Area: b'BaldEagleCr'
        Columns: [b'Stage' b'Flow']
        Flow: b'cfs'
        Stage: b'ft'
                                        Dataset: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Boundary Conditions/DS2NormalD - Flow per Face
                                            Shape: (721, 11)
                                            Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Boundary Conditions/DS2NormalD - Flow per Face:
        2D Area: b'BaldEagleCr'
        Faces: [37551  2157  2032  1904   762  1552  1444  1329  1223  1104   983]
        Units: b'cfs'
                                        Dataset: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Boundary Conditions/DS2NormalD - Stage per Face
                                            Shape: (721, 11)
                                            Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Boundary Conditions/DS2NormalD - Stage per Face:
        2D Area: b'BaldEagleCr'
        Faces: [37551  2157  2032  1904   762  1552  1444  1329  1223  1104   983]
        Units: b'ft'
                                        Dataset: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Boundary Conditions/DSNormalDepth
                                            Shape: (721, 2)
                                            Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Boundary Conditions/DSNormalDepth:
        2D Area: b'BaldEagleCr'
        Columns: [b'Stage' b'Flow']
        Flow: b'cfs'
        Stage: b'ft'
                                        Dataset: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Boundary Conditions/DSNormalDepth - Flow per Face
                                            Shape: (721, 7)
                                            Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Boundary Conditions/DSNormalDepth - Flow per Face:
        2D Area: b'BaldEagleCr'
        Faces: [2954 2960 2823 2829 2683 2679 2540]
        Units: b'cfs'
                                        Dataset: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Boundary Conditions/DSNormalDepth - Stage per Face
                                            Shape: (721, 7)
                                            Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Boundary Conditions/DSNormalDepth - Stage per Face:
        2D Area: b'BaldEagleCr'
        Faces: [2954 2960 2823 2829 2683 2679 2540]
        Units: b'ft'
                                        Dataset: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Boundary Conditions/Upstream Inflow
                                            Shape: (721, 2)
                                            Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Boundary Conditions/Upstream Inflow:
        2D Area: b'BaldEagleCr'
        Columns: [b'Stage' b'Flow']
        Flow: b'cfs'
        Stage: b'ft'
                                        Dataset: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Boundary Conditions/Upstream Inflow - Flow per Face
                                            Shape: (721, 9)
                                            Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Boundary Conditions/Upstream Inflow - Flow per Face:
        2D Area: b'BaldEagleCr'
        Cells: [19542 19545 19544 19546 19548 19547 19550 19551 19514]
        Faces: [37450 37483 37482 37504 37524 37522 37536 37539 37197]
        Units: b'cfs'
                                        Dataset: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Boundary Conditions/Upstream Inflow - Stage per Face
                                            Shape: (721, 9)
                                            Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Boundary Conditions/Upstream Inflow - Stage per Face:
        2D Area: b'BaldEagleCr'
        Faces: [19542 19545 19544 19546 19548 19547 19550 19551 19514]
        Units: b'ft'
                                    Dataset: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Cell Cumulative Excess Depth
                                        Shape: (721, 19597)
                                        Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Cell Cumulative Excess Depth:
        Can Interpolate: b'False'
        Can Plot: b'True'
        Columns: b'Cell'
        Coverage: b'Average'
        Location: b'Cell'
        Maximum Value of Data Set: 6.370406627655029
        Minimum Value of Data Set: 0.0
        Name: b'Cumulative Excess Depth'
        Orientation: b'Scalar'
        Rows: b'Time'
        Units: b'in'
                                    Dataset: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Cell Cumulative Infiltration Depth
                                        Shape: (721, 19597)
                                        Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Cell Cumulative Infiltration Depth:
        Can Interpolate: b'False'
        Can Plot: b'True'
        Columns: b'Cell'
        Coverage: b'Average'
        Location: b'Cell'
        Maximum Value of Data Set: 5.982929229736328
        Minimum Value of Data Set: 0.0
        Name: b'Cumulative Infiltration Depth'
        Orientation: b'Scalar'
        Rows: b'Time'
        Units: b'in'
                                    Dataset: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Cell Cumulative Precipitation Depth
                                        Shape: (721, 19597)
                                        Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Cell Cumulative Precipitation Depth:
        Can Plot: b'True'
        Columns: b'Cell'
        Coverage: b'Average'
        Location: b'Cell'
        Maximum Value of Data Set: 6.390532493591309
        Minimum Value of Data Set: 0.0
        Name: b'Cumulative Precipitation Depth'
        Orientation: b'Scalar'
        Rows: b'Time'
        Units: b'in'
                                    Dataset: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Cell Eddy Viscosity - Eddy Viscosity X
                                        Shape: (721, 19597)
                                        Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Cell Eddy Viscosity - Eddy Viscosity X:
        Can Interpolate: b'True'
        Can Plot: b'True'
        Columns: b'Cells'
        Coverage: b'Wet'
        Group: b'Cell Eddy Viscosity'
        Index: 1
        Location: b'Cells'
        Maximum Value of Data Set: nan
        Name: b'Eddy Viscosity X'
        Orientation: b'Scalar'
        Rows: b'Times'
        Units: b'ft^2/s'
                                    Dataset: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Cell Eddy Viscosity - Eddy Viscosity Y
                                        Shape: (721, 19597)
                                        Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Cell Eddy Viscosity - Eddy Viscosity Y:
        Can Interpolate: b'True'
        Can Plot: b'True'
        Columns: b'Cells'
        Coverage: b'Wet'
        Group: b'Cell Eddy Viscosity'
        Index: 2
        Location: b'Cells'
        Maximum Value of Data Set: nan
        Name: b'Eddy Viscosity Y'
        Orientation: b'Scalar'
        Rows: b'Times'
        Units: b'ft^2/s'
                                    Dataset: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Cell Velocity - Velocity X
                                        Shape: (721, 19597)
                                        Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Cell Velocity - Velocity X:
        Can Interpolate: b'True'
        Can Plot: b'True'
        Columns: b'Cells'
        Coverage: b'Wet'
        Group: b'Cell Velocity'
        Index: 1
        Location: b'Cells'
        Maximum Value of Data Set: nan
        Name: b'Velocity X'
        Orientation: b'Scalar'
        Rows: b'Times'
        Units: b'ft/s'
                                    Dataset: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Cell Velocity - Velocity Y
                                        Shape: (721, 19597)
                                        Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Cell Velocity - Velocity Y:
        Can Interpolate: b'True'
        Can Plot: b'True'
        Columns: b'Cells'
        Coverage: b'Wet'
        Group: b'Cell Velocity'
        Index: 2
        Location: b'Cells'
        Maximum Value of Data Set: nan
        Name: b'Velocity Y'
        Orientation: b'Scalar'
        Rows: b'Times'
        Units: b'ft/s'
                                    Group: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations
                                        Dataset: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Inner Iteration Number
                                            Shape: (721, 1)
                                            Dtype: int32
    Attributes for //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Inner Iteration Number:
        Description: b'Sum of inner-loop iterations over all outer-loop iterations'
                                        Dataset: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Inner Max Volume Residual
                                            Shape: (721, 1)
                                            Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Inner Max Volume Residual:
        Description: b'Max of inner-loop volume residual for last outer-loop iteration'
        Units: b'ft'
                                        Dataset: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Inner Max Volume Residual Cell
                                            Shape: (721, 1)
                                            Dtype: int32
    Attributes for //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Inner Max Volume Residual Cell:
        Description: b'Cell location of max volume residual for inner-loop during last outer-loop iteration'
                                        Dataset: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Max Courant
                                            Shape: (721, 1)
                                            Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Max Courant:
        Description: b'Maximum Courant Values'
                                        Dataset: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Max Courant Face
                                            Shape: (721, 1)
                                            Dtype: int32
    Attributes for //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Max Courant Face:
        Description: b'Face Index of Maximum Courant Values'
                                        Dataset: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Max Face Velocity
                                            Shape: (721, 1)
                                            Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Max Face Velocity:
        Description: b'Maximum face velocity for 2D area'
        Units: b'ft/s'
                                        Dataset: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Max Face Velocity Face
                                            Shape: (721, 1)
                                            Dtype: int32
    Attributes for //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Max Face Velocity Face:
        Description: b'Face ID of maximum face velocity for 2D area'
                                        Dataset: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Max Water Surface
                                            Shape: (721, 1)
                                            Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Max Water Surface:
        Description: b'Maximum water surface elevation for 2D area'
        Units: b'ft'
                                        Dataset: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Max Water Surface Cell
                                            Shape: (721, 1)
                                            Dtype: int32
    Attributes for //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Max Water Surface Cell:
        Description: b'Cell of minimum water surface elevation for 2D area'
                                        Dataset: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Min Water Surface
                                            Shape: (721, 1)
                                            Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Min Water Surface:
        Description: b'Minimum water surface elevation for 2D area'
        Units: b'ft'
                                        Dataset: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Min Water Surface Cell
                                            Shape: (721, 1)
                                            Dtype: int32
    Attributes for //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Min Water Surface Cell:
        Description: b'Cell of minimum water surface elevation for 2D area'
                                        Dataset: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Outer Iteration Number
                                            Shape: (721, 1)
                                            Dtype: int32
    Attributes for //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Outer Iteration Number:
        Description: b'Number of outer-loop iterations'
                                        Dataset: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Outer Max Water Surface Correction
                                            Shape: (721, 1)
                                            Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Outer Max Water Surface Correction:
        Description: b'Max water surface correction for last outer-loop iteration'
        Units: b'ft'
                                        Dataset: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Outer Max Water Surface Correction Cell
                                            Shape: (721, 1)
                                            Dtype: int32
    Attributes for //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Outer Max Water Surface Correction Cell:
        Description: b'Cell location of max water surface correction at last outer-loop iteration'
                                        Dataset: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Outer Status
                                            Shape: (721, 1)
                                            Dtype: int32
    Attributes for //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Outer Status:
        Description: b'1:ConvMax, 2:ConvRMS, 3:Stall, 4:Iter, 5:Small, -1:Max, -2:Div'
                                        Dataset: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Percent Active Cells
                                            Shape: (721, 1)
                                            Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Percent Active Cells:
        Description: b'Percentage of active (wet) cells'
        Units: b'Percent by number of cells'
                                        Dataset: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Time Step
                                            Shape: (721, 1)
                                            Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Time Step:
        Units: b's'
                                        Dataset: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Total Iteration Number
                                            Shape: (721, 1)
                                            Dtype: int32
    Attributes for //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Total Iteration Number:
        Description: b'Sum of inner and outer iterations'
                                        Dataset: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Volume
                                            Shape: (721, 1)
                                            Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Volume:
        Description: b'Percentage of active (wet) cells'
        Units: b'Acre-Feet'
                                        Dataset: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Volume Error
                                            Shape: (721, 1)
                                            Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Volume Error:
        Description: b'Volume error for 2D area'
        Units: b'ft^3'
                                    Dataset: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Face Eddy Viscosity
                                        Shape: (721, 37594)
                                        Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Face Eddy Viscosity:
        Can Interpolate: b'True'
        Can Plot: b'True'
        Columns: b'Faces'
        Coverage: b'Wet'
        Location: b'Faces'
        Maximum Value of Data Set: nan
        Name: b'Eddy Viscosity'
        Orientation: b'Scalar'
        Rows: b'Times'
        Units: b'ft^2/s'
                                    Dataset: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Face Flow
                                        Shape: (721, 37594)
                                        Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Face Flow:
        Can Interpolate: b'True'
        Can Plot: b'True'
        Columns: b'Faces'
        Coverage: b'Wet'
        Location: b'Faces'
        Maximum Value of Data Set: nan
        Name: b'Flow'
        Orientation: b'Normal'
        Rows: b'Times'
        Units: b'cfs'
                                    Dataset: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Face Shear Stress
                                        Shape: (721, 37594)
                                        Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Face Shear Stress:
        Can Interpolate: b'True'
        Can Plot: b'True'
        Columns: b'Faces'
        Coverage: b'Wet'
        Location: b'Faces'
        Maximum Value of Data Set: nan
        Name: b'Shear Stress'
        Orientation: b'Normal'
        Rows: b'Times'
        Units: b'lb/ft^2'
                                    Dataset: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Face Velocity
                                        Shape: (721, 37594)
                                        Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Face Velocity:
        Can Interpolate: b'True'
        Can Plot: b'True'
        Columns: b'Faces'
        Coverage: b'Wet'
        Location: b'Faces'
        Maximum Value of Data Set: nan
        Name: b'Velocity'
        Orientation: b'Normal'
        Rows: b'Times'
        Units: b'ft/s'
                                    Dataset: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Face Water Surface
                                        Shape: (721, 37594)
                                        Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Face Water Surface:
        Can Interpolate: b'True'
        Can Plot: b'True'
        Columns: b'Faces'
        Coverage: b'Wet'
        Location: b'Faces'
        Maximum Value of Data Set: nan
        Name: b'Face Water Surface'
        Orientation: b'Scalar'
        Rows: b'Times'
        Units: b'ft'
                                    Dataset: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Water Surface
                                        Shape: (721, 19597)
                                        Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Water Surface:
        Can Interpolate: b'True'
        Can Plot: b'True'
        Columns: b'Cells'
        Coverage: b'Wet'
        Location: b'Cells'
        Maximum Value of Data Set: 848.2053833007812
        Minimum Value of Data Set: 527.1317138671875
        Name: b'Water Surface'
        Orientation: b'Scalar'
        Rows: b'Times'
        Units: b'ft'
                            Group: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/Boundary Conditions
                                Dataset: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/Boundary Conditions/DS2NormalD
                                    Shape: (721, 2)
                                    Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/Boundary Conditions/DS2NormalD:
        2D Area: b'BaldEagleCr'
        Columns: [b'Stage' b'Flow']
        Flow: b'cfs'
        Stage: b'ft'
                                Dataset: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/Boundary Conditions/DS2NormalD - Flow per Face
                                    Shape: (721, 11)
                                    Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/Boundary Conditions/DS2NormalD - Flow per Face:
        2D Area: b'BaldEagleCr'
        Faces: [37551  2157  2032  1904   762  1552  1444  1329  1223  1104   983]
        Units: b'cfs'
                                Dataset: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/Boundary Conditions/DS2NormalD - Stage per Face
                                    Shape: (721, 11)
                                    Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/Boundary Conditions/DS2NormalD - Stage per Face:
        2D Area: b'BaldEagleCr'
        Faces: [37551  2157  2032  1904   762  1552  1444  1329  1223  1104   983]
        Units: b'ft'
                                Dataset: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/Boundary Conditions/DSNormalDepth
                                    Shape: (721, 2)
                                    Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/Boundary Conditions/DSNormalDepth:
        2D Area: b'BaldEagleCr'
        Columns: [b'Stage' b'Flow']
        Flow: b'cfs'
        Stage: b'ft'
                                Dataset: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/Boundary Conditions/DSNormalDepth - Flow per Face
                                    Shape: (721, 7)
                                    Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/Boundary Conditions/DSNormalDepth - Flow per Face:
        2D Area: b'BaldEagleCr'
        Faces: [2954 2960 2823 2829 2683 2679 2540]
        Units: b'cfs'
                                Dataset: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/Boundary Conditions/DSNormalDepth - Stage per Face
                                    Shape: (721, 7)
                                    Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/Boundary Conditions/DSNormalDepth - Stage per Face:
        2D Area: b'BaldEagleCr'
        Faces: [2954 2960 2823 2829 2683 2679 2540]
        Units: b'ft'
                                Dataset: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/Boundary Conditions/Upstream Inflow
                                    Shape: (721, 2)
                                    Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/Boundary Conditions/Upstream Inflow:
        2D Area: b'BaldEagleCr'
        Columns: [b'Stage' b'Flow']
        Flow: b'cfs'
        Stage: b'ft'
                                Dataset: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/Boundary Conditions/Upstream Inflow - Flow per Face
                                    Shape: (721, 9)
                                    Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/Boundary Conditions/Upstream Inflow - Flow per Face:
        2D Area: b'BaldEagleCr'
        Cells: [19542 19545 19544 19546 19548 19547 19550 19551 19514]
        Faces: [37450 37483 37482 37504 37524 37522 37536 37539 37197]
        Units: b'cfs'
                                Dataset: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/Boundary Conditions/Upstream Inflow - Stage per Face
                                    Shape: (721, 9)
                                    Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/Boundary Conditions/Upstream Inflow - Stage per Face:
        2D Area: b'BaldEagleCr'
        Faces: [19542 19545 19544 19546 19548 19547 19550 19551 19514]
        Units: b'ft'
                            Group: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/Calibration Regions
    Attributes for //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/Calibration Regions:
        Vol Accounting in: b'acre-ft'
                                Dataset: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/Calibration Regions/Flow Roughness Factor
                                    Shape: (721, 1)
                                    Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/Calibration Regions/Flow Roughness Factor:
        Units: b'-'
                                Dataset: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/Calibration Regions/Inflow - Perimeter
                                    Shape: (721, 1)
                                    Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/Calibration Regions/Inflow - Perimeter:
        Units: b'cfs'
                                Dataset: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/Calibration Regions/Net Inflow - Internal
                                    Shape: (721, 1)
                                    Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/Calibration Regions/Net Inflow - Internal:
        Units: b'cfs'
                                Dataset: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/Calibration Regions/Net Inflow - Perimeter
                                    Shape: (721, 1)
                                    Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/Calibration Regions/Net Inflow - Perimeter:
        Units: b'cfs'
                                Dataset: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/Calibration Regions/Outflow - Perimeter
                                    Shape: (721, 1)
                                    Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/Calibration Regions/Outflow - Perimeter:
        Units: b'cfs'
                                Dataset: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/Calibration Regions/Volume
                                    Shape: (721, 1)
                                    Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/Calibration Regions/Volume:
        Units: b'acre-ft'
                                Dataset: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/Calibration Regions/Volume Error
                                    Shape: (721, 1)
                                    Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/Calibration Regions/Volume Error:
        Units: b'acre-ft'
                                Dataset: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/Calibration Regions/WSE Avg
                                    Shape: (721, 1)
                                    Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/Calibration Regions/WSE Avg:
        Units: b'ft'
                                Dataset: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/Calibration Regions/WSE Max
                                    Shape: (721, 1)
                                    Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/Calibration Regions/WSE Max:
        Units: b'ft'
                                Dataset: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/Calibration Regions/WSE Min
                                    Shape: (721, 1)
                                    Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/Calibration Regions/WSE Min:
        Units: b'ft'
                            Group: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/SA 2D Area Conn
                                Group: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam
    Attributes for //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam:
        Node Pointer: 2
                                    Group: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/Gate Groups
                                        Dataset: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/Gate Groups/Gate #1
                                            Shape: (721, 6)
                                            Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/Gate Groups/Gate #1:
        Variable_Unit: [[b'Gate Flow' b'cfs']
 [b'Gate Opening' b'ft']
 [b'Stage HW' b'ft']
 [b'Stage TW' b'ft']
 [b'Gate Area' b'ft^2']
 [b'Gate Submergence' b'']]
                                    Group: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/Geometric Info
                                        Group: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/Geometric Info/Gates and Culverts
                                            Group: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/Geometric Info/Gates and Culverts/Gate #1
                                                Dataset: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/Geometric Info/Gates and Culverts/Gate #1/Gate CL Cell HW
                                                    Shape: (2,)
                                                    Dtype: int32
                                                Dataset: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/Geometric Info/Gates and Culverts/Gate #1/Gate CL Cell TW
                                                    Shape: (2,)
                                                    Dtype: int32
                                        Dataset: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/Geometric Info/Headwater Face Points
                                            Shape: (28,)
                                            Dtype: int32
                                        Dataset: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/Geometric Info/Headwater Face Points Stations
                                            Shape: (28,)
                                            Dtype: float32
                                        Dataset: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/Geometric Info/Tailwater Face Points
                                            Shape: (28,)
                                            Dtype: int32
                                        Dataset: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/Geometric Info/Tailwater Face Points Stations
                                            Shape: (28,)
                                            Dtype: float32
                                    Group: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/HW TW Cells
                                        Dataset: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/HW TW Cells/Water Surface HW Cells
                                            Shape: (721, 27)
                                            Dtype: float32
                                        Dataset: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/HW TW Cells/Water Surface TW Cells
                                            Shape: (721, 27)
                                            Dtype: float32
                                    Group: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/HW TW Segments
    Attributes for //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/HW TW Segments:
        HW TW Segments: b'Structure Segments Between any HW and/or TW Intersection'
                                        Dataset: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/HW TW Segments/Flow
                                            Shape: (721, 28)
                                            Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/HW TW Segments/Flow:
        Flow: b'Flow Across the given Segment for the Time Step'
        Units: b'cfs'
                                        Dataset: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/HW TW Segments/HW TW Station
                                            Shape: (28,)
                                            Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/HW TW Segments/HW TW Station:
        HW TW Station: b'Starting/Ending station for given segment'
                                        Dataset: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/HW TW Segments/Headwater Cells
                                            Shape: (27,)
                                            Dtype: |S10
    Attributes for //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/HW TW Segments/Headwater Cells:
        Headwater Cells: b'The given Segment is inside of this Cell'
                                        Dataset: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/HW TW Segments/Tailwater Cells
                                            Shape: (27,)
                                            Dtype: |S10
    Attributes for //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/HW TW Segments/Tailwater Cells:
        Tailwater Cells: b'The given Segment is inside of this Cell'
                                        Dataset: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/HW TW Segments/Water Surface HW
                                            Shape: (721, 28)
                                            Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/HW TW Segments/Water Surface HW:
        Units: b'ft'
        Water Surface HW: b'WSEL on HW side for given Station Location and Time Step'
                                        Dataset: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/HW TW Segments/Water Surface TW
                                            Shape: (721, 28)
                                            Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/HW TW Segments/Water Surface TW:
        Units: b'ft'
        Water Surface TW: b'WSEL on TW side for given Station Location and Time Step'
                                    Dataset: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/Headwater Cells
                                        Shape: (27,)
                                        Dtype: int32
                                    Dataset: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/Structure Variables
                                        Shape: (721, 5)
                                        Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/Structure Variables:
        Starting Weir Sta: -0.07999999821186066
        Variable_Unit: [[b'Total Flow' b'cfs']
 [b'Weir Flow' b'cfs']
 [b'Stage HW' b'ft']
 [b'Stage TW' b'ft']
 [b'Total Gate Flow' b'cfs']]
        Weir Sta for WS HW: 5268.0
        Weir Sta for WS TW: 5268.0
                                    Dataset: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/Tailwater Cells
                                        Shape: (27,)
                                        Dtype: int32
                            Dataset: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/Time
                                Shape: (721,)
                                Dtype: float64
    Attributes for //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/Time:
        Number of actual Time Steps: [721]
        Time: b'days'
                            Dataset: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/Time Date Stamp
                                Shape: (721,)
                                Dtype: |S19
                            Dataset: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/Time Date Stamp (ms)
                                Shape: (721,)
                                Dtype: |S22
                            Dataset: //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/Time Step
                                Shape: (721,)
                                Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/Base Output/Unsteady Time Series/Time Step:
        Time Step: b'Seconds'
                    Group: //Results/Unsteady/Output/Output Blocks/Computation Block
                        Group: //Results/Unsteady/Output/Output Blocks/Computation Block/2D Flow Areas
                            Group: //Results/Unsteady/Output/Output Blocks/Computation Block/2D Flow Areas/BaldEagleCr
                                Dataset: //Results/Unsteady/Output/Output Blocks/Computation Block/2D Flow Areas/BaldEagleCr/Inner Iteration Number
                                    Shape: (13215, 1)
                                    Dtype: int32
    Attributes for //Results/Unsteady/Output/Output Blocks/Computation Block/2D Flow Areas/BaldEagleCr/Inner Iteration Number:
        Description: b'Sum of inner-loop iterations over all outer-loop iterations'
                                Dataset: //Results/Unsteady/Output/Output Blocks/Computation Block/2D Flow Areas/BaldEagleCr/Inner Max Volume Residual
                                    Shape: (13215, 1)
                                    Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/Computation Block/2D Flow Areas/BaldEagleCr/Inner Max Volume Residual:
        Description: b'Max of inner-loop volume residual for last outer-loop iteration'
        Units: b'ft'
                                Dataset: //Results/Unsteady/Output/Output Blocks/Computation Block/2D Flow Areas/BaldEagleCr/Inner Max Volume Residual Cell
                                    Shape: (13215, 1)
                                    Dtype: int32
    Attributes for //Results/Unsteady/Output/Output Blocks/Computation Block/2D Flow Areas/BaldEagleCr/Inner Max Volume Residual Cell:
        Description: b'Cell location of max volume residual for inner-loop during last outer-loop iteration'
                                Dataset: //Results/Unsteady/Output/Output Blocks/Computation Block/2D Flow Areas/BaldEagleCr/Max Courant
                                    Shape: (1,)
                                    Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/Computation Block/2D Flow Areas/BaldEagleCr/Max Courant:
        Description: b'Maximum Courant value'
                                Dataset: //Results/Unsteady/Output/Output Blocks/Computation Block/2D Flow Areas/BaldEagleCr/Max Courant Face
                                    Shape: (1,)
                                    Dtype: int32
    Attributes for //Results/Unsteady/Output/Output Blocks/Computation Block/2D Flow Areas/BaldEagleCr/Max Courant Face:
        Description: b'Face of maximum Courant value'
                                Dataset: //Results/Unsteady/Output/Output Blocks/Computation Block/2D Flow Areas/BaldEagleCr/Outer Iteration Number
                                    Shape: (13215, 1)
                                    Dtype: int32
    Attributes for //Results/Unsteady/Output/Output Blocks/Computation Block/2D Flow Areas/BaldEagleCr/Outer Iteration Number:
        Description: b'Number of outer-loop iterations'
                                Dataset: //Results/Unsteady/Output/Output Blocks/Computation Block/2D Flow Areas/BaldEagleCr/Outer Max Water Surface Correction
                                    Shape: (13215, 1)
                                    Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/Computation Block/2D Flow Areas/BaldEagleCr/Outer Max Water Surface Correction:
        Description: b'Max water surface correction for last outer-loop iteration'
        Units: b'ft'
                                Dataset: //Results/Unsteady/Output/Output Blocks/Computation Block/2D Flow Areas/BaldEagleCr/Outer Max Water Surface Correction Cell
                                    Shape: (13215, 1)
                                    Dtype: int32
    Attributes for //Results/Unsteady/Output/Output Blocks/Computation Block/2D Flow Areas/BaldEagleCr/Outer Max Water Surface Correction Cell:
        Description: b'Cell location of max water surface correction at last outer-loop iteration'
                                Dataset: //Results/Unsteady/Output/Output Blocks/Computation Block/2D Flow Areas/BaldEagleCr/Total Iteration Number
                                    Shape: (13215, 1)
                                    Dtype: int32
    Attributes for //Results/Unsteady/Output/Output Blocks/Computation Block/2D Flow Areas/BaldEagleCr/Total Iteration Number:
        Description: b'Sum of inner and outer iterations'
                        Group: //Results/Unsteady/Output/Output Blocks/Computation Block/2D Global
                            Dataset: //Results/Unsteady/Output/Output Blocks/Computation Block/2D Global/2D Area(s)
                                Shape: (1,)
                                Dtype: |S64
                            Dataset: //Results/Unsteady/Output/Output Blocks/Computation Block/2D Global/2D Iteration Error
                                Shape: (13215,)
                                Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/Computation Block/2D Global/2D Iteration Error:
        2D Iteration Error: b'ft'
                            Dataset: //Results/Unsteady/Output/Output Blocks/Computation Block/2D Global/2D Iterations
                                Shape: (13215, 3)
                                Dtype: int32
    Attributes for //Results/Unsteady/Output/Output Blocks/Computation Block/2D Global/2D Iterations:
        2D Areas: [b'BaldEagleCr']
        Variables: [b'Number of Iterations' b'2D Area pointer' b'Cell #']
                            Dataset: //Results/Unsteady/Output/Output Blocks/Computation Block/2D Global/2D Max Courant
                                Shape: (13215,)
                                Dtype: float32
                            Dataset: //Results/Unsteady/Output/Output Blocks/Computation Block/2D Global/2D Max Courant Face
                                Shape: (13215, 2)
                                Dtype: int32
    Attributes for //Results/Unsteady/Output/Output Blocks/Computation Block/2D Global/2D Max Courant Face:
        Variables: [b'2D Area pointer' b'Face #']
                        Group: //Results/Unsteady/Output/Output Blocks/Computation Block/Global
                            Dataset: //Results/Unsteady/Output/Output Blocks/Computation Block/Global/Time
                                Shape: (13215,)
                                Dtype: float64
                            Dataset: //Results/Unsteady/Output/Output Blocks/Computation Block/Global/Time Date Stamp (ms)
                                Shape: (13215,)
                                Dtype: |S22
                    Group: //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output:
        Output Block Name: [b'DSS Adaptive Hydrograph Output']
                        Group: //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Summary Output
                            Group: //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Summary Output/2D Flow Areas
                                Group: //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Summary Output/2D Flow Areas/BaldEagleCr
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Summary Output/2D Flow Areas/BaldEagleCr:
        Cum Net Precip Inches: 1.707614779472351
        Vol Accounting: b'Volume Accounting in Acre Feet'
        Vol Accounting Ending Volume: 124445.203125
        Vol Accounting Error: 0.46921461820602417
        Vol Accounting Error Percentage: 0.0003311674518045038
        Vol Accounting External Inflow: 141685.0
        Vol Accounting External Outflow: 17240.263671875
        Vol Accounting Internal Inflow: 0.0
        Vol Accounting Internal Outflow: 0.0
        Vol Accounting Starting Volume: 0.0
        Vol Acct. Inflow from Net Precip: 3756.872802734375
                                    Dataset: //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Summary Output/2D Flow Areas/BaldEagleCr/Cell Cumulative Iter Lookup
                                        Shape: (1, 2)
                                        Dtype: int32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Summary Output/2D Flow Areas/BaldEagleCr/Cell Cumulative Iter Lookup:
        Column 1: b'Cell Number'
        Column 2: b'Cumulative number of Max Iterations'
        Number of different Cells that went to Maximum Iterations: 0
                                    Dataset: //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Summary Output/2D Flow Areas/BaldEagleCr/Cell Cumulative Iteration
                                        Shape: (19597,)
                                        Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Summary Output/2D Flow Areas/BaldEagleCr/Cell Cumulative Iteration:
        Can Interpolate: b'False'
        Can Plot: b'True'
        Cell: b'Number of times given cell went to max iterations'
        Coverage: b'Average'
        Location: b'Cells'
        Maximum Value of Data Set: 0.0
        Minimum Value of Data Set: 0.0
        Name: b'Cumulative Max Iterations'
        Orientation: b'Scalar'
        Row: 0
        Units: b'Iterations'
                                    Dataset: //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Summary Output/2D Flow Areas/BaldEagleCr/Cell Last Iteration
                                        Shape: (19597,)
                                        Dtype: int32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Summary Output/2D Flow Areas/BaldEagleCr/Cell Last Iteration:
        Cell: b'Number of times given cell is last cell to converge or it went to max iterations'
                                    Dataset: //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Summary Output/2D Flow Areas/BaldEagleCr/Cell Maximum Water Surface Error
                                        Shape: (2, 19597)
                                        Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Summary Output/2D Flow Areas/BaldEagleCr/Cell Maximum Water Surface Error:
        Can Interpolate: b'False'
        Can Plot: b'True'
        Coverage: b'Average'
        Location: b'Cells'
        Max Time: 5.0
        Maximum Value of Data Set: 0.009991085156798363
        Minimum Value of Data Set: 0.0
        Name: b'Water Surface Error Maximum'
        Orientation: b'Scalar'
        Row: 0
        Row Variables: [b'WSEL Error' b'Time']
        Units: b'ft'
        Units per row: [b'ft' b'days']
                                    Dataset: //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Summary Output/2D Flow Areas/BaldEagleCr/Maximum Face Courant
                                        Shape: (2, 37594)
                                        Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Summary Output/2D Flow Areas/BaldEagleCr/Maximum Face Courant:
        Can Interpolate: b'False'
        Can Plot: b'True'
        Coverage: b'Average'
        Location: b'Faces'
        Maximum Value of Data Set: 0.6819884181022644
        Minimum Value of Data Set: 0.0
        Name: b'Face Courant Maximum'
        Orientation: b'Scalar'
        Row: 0
        Rows Variables: [b'Courant Face' b'Time']
        Units: b'vel*dt/length'
        Units per row: [b'vel*dt/length' b'days']
                                    Dataset: //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Summary Output/2D Flow Areas/BaldEagleCr/Maximum Face Shear Stress
                                        Shape: (2, 37594)
                                        Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Summary Output/2D Flow Areas/BaldEagleCr/Maximum Face Shear Stress:
        Max Time: 0.0
        Max Value: 0.0
        Min Time: 0.0
        Min Value: 0.0
        Rows Variables: [b'Shear Stress' b'Time']
        Units: [b'PSF' b'days']
                                    Dataset: //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Summary Output/2D Flow Areas/BaldEagleCr/Maximum Face Velocity
                                        Shape: (2, 37594)
                                        Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Summary Output/2D Flow Areas/BaldEagleCr/Maximum Face Velocity:
        Can Interpolate: b'True'
        Can Plot: b'False'
        Coverage: b'Average'
        Location: b'Faces'
        Max Time: 5.0
        Maximum Value of Data Set: 10.975321769714355
        Min Time: 0.0
        Min Value: -13.62198543548584
        Minimum Value of Data Set: -13.62198543548584
        Name: b'Face Velocity Maximum'
        Orientation: b'Scalar'
        Row: 0
        Rows Variables: [b'Velocity' b'Time']
        Units: b'ft/s'
        Units per row: [b'ft/s' b'days']
                                    Dataset: //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Summary Output/2D Flow Areas/BaldEagleCr/Maximum Water Surface
                                        Shape: (2, 19597)
                                        Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Summary Output/2D Flow Areas/BaldEagleCr/Maximum Water Surface:
        Max Time: 5.0
        Max Value: 848.2053833007812
        Min Time: 0.9995370507240295
        Min Value: 535.5850219726562
        Rows Variables: [b'WSEL' b'Time']
        Units: [b'ft' b'days']
                                    Dataset: //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Summary Output/2D Flow Areas/BaldEagleCr/Minimum Face Velocity
                                        Shape: (2, 37594)
                                        Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Summary Output/2D Flow Areas/BaldEagleCr/Minimum Face Velocity:
        Can Interpolate: b'True'
        Can Plot: b'False'
        Coverage: b'Average'
        Location: b'Faces'
        Max Time: 0.00023148149193730205
        Maximum Value of Data Set: 0.0
        Min Time: 0.00023148149193730205
        Min Value: -1.0384738445281982
        Minimum Value of Data Set: -1.0384738445281982
        Name: b'Face Velocity Minimum'
        Orientation: b'Scalar'
        Row: 0
        Rows Variables: [b'velocity' b'Time']
        Units: b'ft/s'
        Units per row: [b'ft/s' b'days']
                                    Dataset: //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Summary Output/2D Flow Areas/BaldEagleCr/Minimum Water Surface
                                        Shape: (2, 19597)
                                        Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Summary Output/2D Flow Areas/BaldEagleCr/Minimum Water Surface:
        Max Time: 0.00023148149193730205
        Max Value: 845.14892578125
        Min Time: 0.00023148149193730205
        Min Value: 527.1326904296875
        Rows Variables: [b'WSEL' b'Time']
        Units: [b'ft' b'days']
                                    Dataset: //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Summary Output/2D Flow Areas/BaldEagleCr/Starting Differences Velocity
                                        Shape: (3, 37594)
                                        Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Summary Output/2D Flow Areas/BaldEagleCr/Starting Differences Velocity:
        Row0: b'Prior Profile Velocity'
        Row1: b'First Time Step Velocity'
        Row2: b'Difference'
        Units: b'ft/s'
                                    Dataset: //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Summary Output/2D Flow Areas/BaldEagleCr/Starting Differences WSE
                                        Shape: (3, 19597)
                                        Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Summary Output/2D Flow Areas/BaldEagleCr/Starting Differences WSE:
        Row0: b'Prior Profile WSE'
        Row1: b'First Time Step WSE'
        Row2: b'Difference'
        Units: b'ft'
                        Group: //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series
                            Group: //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/2D Flow Areas
                                Group: //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr
                                    Group: //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Boundary Conditions
                                        Dataset: //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Boundary Conditions/DS2NormalD
                                            Shape: (9996, 2)
                                            Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Boundary Conditions/DS2NormalD:
        2D Area: b'BaldEagleCr'
        Columns: [b'Stage' b'Flow']
        Flow: b'cfs'
        Stage: b'ft'
                                        Dataset: //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Boundary Conditions/DS2NormalD - Flow per Face
                                            Shape: (9996, 11)
                                            Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Boundary Conditions/DS2NormalD - Flow per Face:
        2D Area: b'BaldEagleCr'
        Faces: [37551  2157  2032  1904   762  1552  1444  1329  1223  1104   983]
        Units: b'cfs'
                                        Dataset: //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Boundary Conditions/DS2NormalD - Stage per Face
                                            Shape: (9996, 11)
                                            Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Boundary Conditions/DS2NormalD - Stage per Face:
        2D Area: b'BaldEagleCr'
        Faces: [37551  2157  2032  1904   762  1552  1444  1329  1223  1104   983]
        Units: b'ft'
                                        Dataset: //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Boundary Conditions/DSNormalDepth
                                            Shape: (9996, 2)
                                            Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Boundary Conditions/DSNormalDepth:
        2D Area: b'BaldEagleCr'
        Columns: [b'Stage' b'Flow']
        Flow: b'cfs'
        Stage: b'ft'
                                        Dataset: //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Boundary Conditions/DSNormalDepth - Flow per Face
                                            Shape: (9996, 7)
                                            Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Boundary Conditions/DSNormalDepth - Flow per Face:
        2D Area: b'BaldEagleCr'
        Faces: [2954 2960 2823 2829 2683 2679 2540]
        Units: b'cfs'
                                        Dataset: //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Boundary Conditions/DSNormalDepth - Stage per Face
                                            Shape: (9996, 7)
                                            Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Boundary Conditions/DSNormalDepth - Stage per Face:
        2D Area: b'BaldEagleCr'
        Faces: [2954 2960 2823 2829 2683 2679 2540]
        Units: b'ft'
                                        Dataset: //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Boundary Conditions/Upstream Inflow
                                            Shape: (9996, 2)
                                            Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Boundary Conditions/Upstream Inflow:
        2D Area: b'BaldEagleCr'
        Columns: [b'Stage' b'Flow']
        Flow: b'cfs'
        Stage: b'ft'
                                        Dataset: //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Boundary Conditions/Upstream Inflow - Flow per Face
                                            Shape: (9996, 9)
                                            Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Boundary Conditions/Upstream Inflow - Flow per Face:
        2D Area: b'BaldEagleCr'
        Cells: [19542 19545 19544 19546 19548 19547 19550 19551 19514]
        Faces: [37450 37483 37482 37504 37524 37522 37536 37539 37197]
        Units: b'cfs'
                                        Dataset: //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Boundary Conditions/Upstream Inflow - Stage per Face
                                            Shape: (9996, 9)
                                            Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Boundary Conditions/Upstream Inflow - Stage per Face:
        2D Area: b'BaldEagleCr'
        Faces: [19542 19545 19544 19546 19548 19547 19550 19551 19514]
        Units: b'ft'
                                    Group: //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations
                                        Dataset: //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Inner Iteration Number
                                            Shape: (9996, 1)
                                            Dtype: int32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Inner Iteration Number:
        Description: b'Sum of inner-loop iterations over all outer-loop iterations'
                                        Dataset: //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Inner Max Volume Residual
                                            Shape: (9996, 1)
                                            Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Inner Max Volume Residual:
        Description: b'Max of inner-loop volume residual for last outer-loop iteration'
        Units: b'ft'
                                        Dataset: //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Inner Max Volume Residual Cell
                                            Shape: (9996, 1)
                                            Dtype: int32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Inner Max Volume Residual Cell:
        Description: b'Cell location of max volume residual for inner-loop during last outer-loop iteration'
                                        Dataset: //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Max Courant
                                            Shape: (9996, 1)
                                            Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Max Courant:
        Description: b'Maximum Courant Values'
                                        Dataset: //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Max Courant Face
                                            Shape: (9996, 1)
                                            Dtype: int32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Max Courant Face:
        Description: b'Face Index of Maximum Courant Values'
                                        Dataset: //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Max Face Velocity
                                            Shape: (9996, 1)
                                            Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Max Face Velocity:
        Description: b'Maximum face velocity for 2D area'
        Units: b'ft/s'
                                        Dataset: //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Max Face Velocity Face
                                            Shape: (9996, 1)
                                            Dtype: int32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Max Face Velocity Face:
        Description: b'Face ID of maximum face velocity for 2D area'
                                        Dataset: //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Max Water Surface
                                            Shape: (9996, 1)
                                            Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Max Water Surface:
        Description: b'Maximum water surface elevation for 2D area'
        Units: b'ft'
                                        Dataset: //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Max Water Surface Cell
                                            Shape: (9996, 1)
                                            Dtype: int32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Max Water Surface Cell:
        Description: b'Cell of minimum water surface elevation for 2D area'
                                        Dataset: //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Min Water Surface
                                            Shape: (9996, 1)
                                            Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Min Water Surface:
        Description: b'Minimum water surface elevation for 2D area'
        Units: b'ft'
                                        Dataset: //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Min Water Surface Cell
                                            Shape: (9996, 1)
                                            Dtype: int32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Min Water Surface Cell:
        Description: b'Cell of minimum water surface elevation for 2D area'
                                        Dataset: //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Outer Iteration Number
                                            Shape: (9996, 1)
                                            Dtype: int32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Outer Iteration Number:
        Description: b'Number of outer-loop iterations'
                                        Dataset: //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Outer Max Water Surface Correction
                                            Shape: (9996, 1)
                                            Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Outer Max Water Surface Correction:
        Description: b'Max water surface correction for last outer-loop iteration'
        Units: b'ft'
                                        Dataset: //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Outer Max Water Surface Correction Cell
                                            Shape: (9996, 1)
                                            Dtype: int32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Outer Max Water Surface Correction Cell:
        Description: b'Cell location of max water surface correction at last outer-loop iteration'
                                        Dataset: //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Outer Status
                                            Shape: (9996, 1)
                                            Dtype: int32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Outer Status:
        Description: b'1:ConvMax, 2:ConvRMS, 3:Stall, 4:Iter, 5:Small, -1:Max, -2:Div'
                                        Dataset: //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Percent Active Cells
                                            Shape: (9996, 1)
                                            Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Percent Active Cells:
        Description: b'Percentage of active (wet) cells'
        Units: b'Percent by number of cells'
                                        Dataset: //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Time Step
                                            Shape: (9996, 1)
                                            Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Time Step:
        Units: b's'
                                        Dataset: //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Total Iteration Number
                                            Shape: (9996, 1)
                                            Dtype: int32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Total Iteration Number:
        Description: b'Sum of inner and outer iterations'
                                        Dataset: //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Volume
                                            Shape: (9996, 1)
                                            Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Volume:
        Description: b'Percentage of active (wet) cells'
        Units: b'Acre-Feet'
                                        Dataset: //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Volume Error
                                            Shape: (9996, 1)
                                            Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Volume Error:
        Description: b'Volume error for 2D area'
        Units: b'ft^3'
                            Group: //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/Boundary Conditions
                                Dataset: //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/Boundary Conditions/DS2NormalD
                                    Shape: (9996, 2)
                                    Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/Boundary Conditions/DS2NormalD:
        2D Area: b'BaldEagleCr'
        Columns: [b'Stage' b'Flow']
        Flow: b'cfs'
        Stage: b'ft'
                                Dataset: //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/Boundary Conditions/DS2NormalD - Flow per Face
                                    Shape: (9996, 11)
                                    Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/Boundary Conditions/DS2NormalD - Flow per Face:
        2D Area: b'BaldEagleCr'
        Faces: [37551  2157  2032  1904   762  1552  1444  1329  1223  1104   983]
        Units: b'cfs'
                                Dataset: //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/Boundary Conditions/DS2NormalD - Stage per Face
                                    Shape: (9996, 11)
                                    Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/Boundary Conditions/DS2NormalD - Stage per Face:
        2D Area: b'BaldEagleCr'
        Faces: [37551  2157  2032  1904   762  1552  1444  1329  1223  1104   983]
        Units: b'ft'
                                Dataset: //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/Boundary Conditions/DSNormalDepth
                                    Shape: (9996, 2)
                                    Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/Boundary Conditions/DSNormalDepth:
        2D Area: b'BaldEagleCr'
        Columns: [b'Stage' b'Flow']
        Flow: b'cfs'
        Stage: b'ft'
                                Dataset: //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/Boundary Conditions/DSNormalDepth - Flow per Face
                                    Shape: (9996, 7)
                                    Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/Boundary Conditions/DSNormalDepth - Flow per Face:
        2D Area: b'BaldEagleCr'
        Faces: [2954 2960 2823 2829 2683 2679 2540]
        Units: b'cfs'
                                Dataset: //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/Boundary Conditions/DSNormalDepth - Stage per Face
                                    Shape: (9996, 7)
                                    Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/Boundary Conditions/DSNormalDepth - Stage per Face:
        2D Area: b'BaldEagleCr'
        Faces: [2954 2960 2823 2829 2683 2679 2540]
        Units: b'ft'
                                Dataset: //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/Boundary Conditions/Upstream Inflow
                                    Shape: (9996, 2)
                                    Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/Boundary Conditions/Upstream Inflow:
        2D Area: b'BaldEagleCr'
        Columns: [b'Stage' b'Flow']
        Flow: b'cfs'
        Stage: b'ft'
                                Dataset: //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/Boundary Conditions/Upstream Inflow - Flow per Face
                                    Shape: (9996, 9)
                                    Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/Boundary Conditions/Upstream Inflow - Flow per Face:
        2D Area: b'BaldEagleCr'
        Cells: [19542 19545 19544 19546 19548 19547 19550 19551 19514]
        Faces: [37450 37483 37482 37504 37524 37522 37536 37539 37197]
        Units: b'cfs'
                                Dataset: //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/Boundary Conditions/Upstream Inflow - Stage per Face
                                    Shape: (9996, 9)
                                    Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/Boundary Conditions/Upstream Inflow - Stage per Face:
        2D Area: b'BaldEagleCr'
        Faces: [19542 19545 19544 19546 19548 19547 19550 19551 19514]
        Units: b'ft'
                            Group: //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/Calibration Regions
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/Calibration Regions:
        Vol Accounting in: b'acre-ft'
                                Dataset: //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/Calibration Regions/Flow Roughness Factor
                                    Shape: (9996, 1)
                                    Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/Calibration Regions/Flow Roughness Factor:
        Units: b'-'
                                Dataset: //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/Calibration Regions/Inflow - Perimeter
                                    Shape: (9996, 1)
                                    Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/Calibration Regions/Inflow - Perimeter:
        Units: b'cfs'
                                Dataset: //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/Calibration Regions/Net Inflow - Internal
                                    Shape: (9996, 1)
                                    Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/Calibration Regions/Net Inflow - Internal:
        Units: b'cfs'
                                Dataset: //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/Calibration Regions/Net Inflow - Perimeter
                                    Shape: (9996, 1)
                                    Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/Calibration Regions/Net Inflow - Perimeter:
        Units: b'cfs'
                                Dataset: //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/Calibration Regions/Outflow - Perimeter
                                    Shape: (9996, 1)
                                    Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/Calibration Regions/Outflow - Perimeter:
        Units: b'cfs'
                                Dataset: //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/Calibration Regions/Volume
                                    Shape: (9996, 1)
                                    Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/Calibration Regions/Volume:
        Units: b'acre-ft'
                                Dataset: //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/Calibration Regions/Volume Error
                                    Shape: (9996, 1)
                                    Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/Calibration Regions/Volume Error:
        Units: b'acre-ft'
                                Dataset: //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/Calibration Regions/WSE Avg
                                    Shape: (9996, 1)
                                    Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/Calibration Regions/WSE Avg:
        Units: b'ft'
                                Dataset: //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/Calibration Regions/WSE Max
                                    Shape: (9996, 1)
                                    Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/Calibration Regions/WSE Max:
        Units: b'ft'
                                Dataset: //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/Calibration Regions/WSE Min
                                    Shape: (9996, 1)
                                    Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/Calibration Regions/WSE Min:
        Units: b'ft'
                            Group: //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/SA 2D Area Conn
                                Group: //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam:
        Node Pointer: 2
                                    Group: //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/Gate Groups
                                        Dataset: //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/Gate Groups/Gate #1
                                            Shape: (9996, 6)
                                            Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/Gate Groups/Gate #1:
        Variable_Unit: [[b'Gate Flow' b'cfs']
 [b'Gate Opening' b'ft']
 [b'Stage HW' b'ft']
 [b'Stage TW' b'ft']
 [b'Gate Area' b'ft^2']
 [b'Gate Submergence' b'']]
                                    Group: //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/Geometric Info
                                        Group: //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/Geometric Info/Gates and Culverts
                                            Group: //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/Geometric Info/Gates and Culverts/Gate #1
                                                Dataset: //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/Geometric Info/Gates and Culverts/Gate #1/Gate CL Cell HW
                                                    Shape: (2,)
                                                    Dtype: int32
                                                Dataset: //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/Geometric Info/Gates and Culverts/Gate #1/Gate CL Cell TW
                                                    Shape: (2,)
                                                    Dtype: int32
                                        Dataset: //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/Geometric Info/Headwater Face Points
                                            Shape: (28,)
                                            Dtype: int32
                                        Dataset: //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/Geometric Info/Headwater Face Points Stations
                                            Shape: (28,)
                                            Dtype: float32
                                        Dataset: //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/Geometric Info/Tailwater Face Points
                                            Shape: (28,)
                                            Dtype: int32
                                        Dataset: //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/Geometric Info/Tailwater Face Points Stations
                                            Shape: (28,)
                                            Dtype: float32
                                    Group: //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/HW TW Cells
                                        Dataset: //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/HW TW Cells/Water Surface HW Cells
                                            Shape: (9996, 27)
                                            Dtype: float32
                                        Dataset: //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/HW TW Cells/Water Surface TW Cells
                                            Shape: (9996, 27)
                                            Dtype: float32
                                    Group: //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/HW TW Segments
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/HW TW Segments:
        HW TW Segments: b'Structure Segments Between any HW and/or TW Intersection'
                                        Dataset: //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/HW TW Segments/Flow
                                            Shape: (9996, 28)
                                            Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/HW TW Segments/Flow:
        Flow: b'Flow Across the given Segment for the Time Step'
        Units: b'cfs'
                                        Dataset: //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/HW TW Segments/HW TW Station
                                            Shape: (28,)
                                            Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/HW TW Segments/HW TW Station:
        HW TW Station: b'Starting/Ending station for given segment'
                                        Dataset: //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/HW TW Segments/Headwater Cells
                                            Shape: (27,)
                                            Dtype: |S10
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/HW TW Segments/Headwater Cells:
        Headwater Cells: b'The given Segment is inside of this Cell'
                                        Dataset: //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/HW TW Segments/Tailwater Cells
                                            Shape: (27,)
                                            Dtype: |S10
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/HW TW Segments/Tailwater Cells:
        Tailwater Cells: b'The given Segment is inside of this Cell'
                                        Dataset: //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/HW TW Segments/Water Surface HW
                                            Shape: (9996, 28)
                                            Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/HW TW Segments/Water Surface HW:
        Units: b'ft'
        Water Surface HW: b'WSEL on HW side for given Station Location and Time Step'
                                        Dataset: //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/HW TW Segments/Water Surface TW
                                            Shape: (9996, 28)
                                            Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/HW TW Segments/Water Surface TW:
        Units: b'ft'
        Water Surface TW: b'WSEL on TW side for given Station Location and Time Step'
                                    Dataset: //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/Headwater Cells
                                        Shape: (27,)
                                        Dtype: int32
                                    Dataset: //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/Structure Variables
                                        Shape: (9996, 5)
                                        Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/Structure Variables:
        Starting Weir Sta: -0.07999999821186066
        Variable_Unit: [[b'Total Flow' b'cfs']
 [b'Weir Flow' b'cfs']
 [b'Stage HW' b'ft']
 [b'Stage TW' b'ft']
 [b'Total Gate Flow' b'cfs']]
        Weir Sta for WS HW: 5268.0
        Weir Sta for WS TW: 5268.0
                                    Dataset: //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/Tailwater Cells
                                        Shape: (27,)
                                        Dtype: int32
                            Dataset: //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/Time
                                Shape: (9996,)
                                Dtype: float64
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/Time:
        Number of actual Time Steps: [9996]
        Time: b'days'
                            Dataset: //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/Time Date Stamp
                                Shape: (9996,)
                                Dtype: |S19
                            Dataset: //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/Time Date Stamp (ms)
                                Shape: (9996,)
                                Dtype: |S22
                            Dataset: //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/Time Step
                                Shape: (9996,)
                                Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Adaptive Hydrograph Output/Unsteady Time Series/Time Step:
        Time Step: b'Seconds'
                    Group: //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output:
        Output Block Name: [b'DSS Hydrograph Output']
                        Group: //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Summary Output
                            Group: //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Summary Output/2D Flow Areas
                                Group: //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Summary Output/2D Flow Areas/BaldEagleCr
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Summary Output/2D Flow Areas/BaldEagleCr:
        Cum Net Precip Inches: 1.707614779472351
        Vol Accounting: b'Volume Accounting in Acre Feet'
        Vol Accounting Ending Volume: 124445.203125
        Vol Accounting Error: 0.46921461820602417
        Vol Accounting Error Percentage: 0.0003311674518045038
        Vol Accounting External Inflow: 141685.0
        Vol Accounting External Outflow: 17240.263671875
        Vol Accounting Internal Inflow: 0.0
        Vol Accounting Internal Outflow: 0.0
        Vol Accounting Starting Volume: 0.0
        Vol Acct. Inflow from Net Precip: 3756.872802734375
                                    Dataset: //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Summary Output/2D Flow Areas/BaldEagleCr/Cell Cumulative Iter Lookup
                                        Shape: (1, 2)
                                        Dtype: int32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Summary Output/2D Flow Areas/BaldEagleCr/Cell Cumulative Iter Lookup:
        Column 1: b'Cell Number'
        Column 2: b'Cumulative number of Max Iterations'
        Number of different Cells that went to Maximum Iterations: 0
                                    Dataset: //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Summary Output/2D Flow Areas/BaldEagleCr/Cell Cumulative Iteration
                                        Shape: (19597,)
                                        Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Summary Output/2D Flow Areas/BaldEagleCr/Cell Cumulative Iteration:
        Can Interpolate: b'False'
        Can Plot: b'True'
        Cell: b'Number of times given cell went to max iterations'
        Coverage: b'Average'
        Location: b'Cells'
        Maximum Value of Data Set: 0.0
        Minimum Value of Data Set: 0.0
        Name: b'Cumulative Max Iterations'
        Orientation: b'Scalar'
        Row: 0
        Units: b'Iterations'
                                    Dataset: //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Summary Output/2D Flow Areas/BaldEagleCr/Cell Last Iteration
                                        Shape: (19597,)
                                        Dtype: int32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Summary Output/2D Flow Areas/BaldEagleCr/Cell Last Iteration:
        Cell: b'Number of times given cell is last cell to converge or it went to max iterations'
                                    Dataset: //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Summary Output/2D Flow Areas/BaldEagleCr/Cell Maximum Water Surface Error
                                        Shape: (2, 19597)
                                        Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Summary Output/2D Flow Areas/BaldEagleCr/Cell Maximum Water Surface Error:
        Can Interpolate: b'False'
        Can Plot: b'True'
        Coverage: b'Average'
        Location: b'Cells'
        Max Time: 5.0
        Maximum Value of Data Set: 0.009991085156798363
        Minimum Value of Data Set: 0.0
        Name: b'Water Surface Error Maximum'
        Orientation: b'Scalar'
        Row: 0
        Row Variables: [b'WSEL Error' b'Time']
        Units: b'ft'
        Units per row: [b'ft' b'days']
                                    Dataset: //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Summary Output/2D Flow Areas/BaldEagleCr/Maximum Face Courant
                                        Shape: (2, 37594)
                                        Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Summary Output/2D Flow Areas/BaldEagleCr/Maximum Face Courant:
        Can Interpolate: b'False'
        Can Plot: b'True'
        Coverage: b'Average'
        Location: b'Faces'
        Maximum Value of Data Set: 0.6819884181022644
        Minimum Value of Data Set: 0.0
        Name: b'Face Courant Maximum'
        Orientation: b'Scalar'
        Row: 0
        Rows Variables: [b'Courant Face' b'Time']
        Units: b'vel*dt/length'
        Units per row: [b'vel*dt/length' b'days']
                                    Dataset: //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Summary Output/2D Flow Areas/BaldEagleCr/Maximum Face Shear Stress
                                        Shape: (2, 37594)
                                        Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Summary Output/2D Flow Areas/BaldEagleCr/Maximum Face Shear Stress:
        Max Time: 0.0
        Max Value: 0.0
        Min Time: 0.0
        Min Value: 0.0
        Rows Variables: [b'Shear Stress' b'Time']
        Units: [b'PSF' b'days']
                                    Dataset: //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Summary Output/2D Flow Areas/BaldEagleCr/Maximum Face Velocity
                                        Shape: (2, 37594)
                                        Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Summary Output/2D Flow Areas/BaldEagleCr/Maximum Face Velocity:
        Can Interpolate: b'True'
        Can Plot: b'False'
        Coverage: b'Average'
        Location: b'Faces'
        Max Time: 5.0
        Maximum Value of Data Set: 10.975321769714355
        Min Time: 0.0
        Min Value: -13.62198543548584
        Minimum Value of Data Set: -13.62198543548584
        Name: b'Face Velocity Maximum'
        Orientation: b'Scalar'
        Row: 0
        Rows Variables: [b'Velocity' b'Time']
        Units: b'ft/s'
        Units per row: [b'ft/s' b'days']
                                    Dataset: //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Summary Output/2D Flow Areas/BaldEagleCr/Maximum Water Surface
                                        Shape: (2, 19597)
                                        Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Summary Output/2D Flow Areas/BaldEagleCr/Maximum Water Surface:
        Max Time: 5.0
        Max Value: 848.2053833007812
        Min Time: 0.9995370507240295
        Min Value: 535.5850219726562
        Rows Variables: [b'WSEL' b'Time']
        Units: [b'ft' b'days']
                                    Dataset: //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Summary Output/2D Flow Areas/BaldEagleCr/Minimum Face Velocity
                                        Shape: (2, 37594)
                                        Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Summary Output/2D Flow Areas/BaldEagleCr/Minimum Face Velocity:
        Can Interpolate: b'True'
        Can Plot: b'False'
        Coverage: b'Average'
        Location: b'Faces'
        Max Time: 0.00023148149193730205
        Maximum Value of Data Set: 0.0
        Min Time: 0.00023148149193730205
        Min Value: -1.0384738445281982
        Minimum Value of Data Set: -1.0384738445281982
        Name: b'Face Velocity Minimum'
        Orientation: b'Scalar'
        Row: 0
        Rows Variables: [b'velocity' b'Time']
        Units: b'ft/s'
        Units per row: [b'ft/s' b'days']
                                    Dataset: //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Summary Output/2D Flow Areas/BaldEagleCr/Minimum Water Surface
                                        Shape: (2, 19597)
                                        Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Summary Output/2D Flow Areas/BaldEagleCr/Minimum Water Surface:
        Max Time: 0.00023148149193730205
        Max Value: 845.14892578125
        Min Time: 0.00023148149193730205
        Min Value: 527.1326904296875
        Rows Variables: [b'WSEL' b'Time']
        Units: [b'ft' b'days']
                                    Dataset: //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Summary Output/2D Flow Areas/BaldEagleCr/Starting Differences Velocity
                                        Shape: (3, 37594)
                                        Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Summary Output/2D Flow Areas/BaldEagleCr/Starting Differences Velocity:
        Row0: b'Prior Profile Velocity'
        Row1: b'First Time Step Velocity'
        Row2: b'Difference'
        Units: b'ft/s'
                                    Dataset: //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Summary Output/2D Flow Areas/BaldEagleCr/Starting Differences WSE
                                        Shape: (3, 19597)
                                        Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Summary Output/2D Flow Areas/BaldEagleCr/Starting Differences WSE:
        Row0: b'Prior Profile WSE'
        Row1: b'First Time Step WSE'
        Row2: b'Difference'
        Units: b'ft'
                        Group: //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series
                            Group: //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/2D Flow Areas
                                Group: //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr
                                    Group: //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Boundary Conditions
                                        Dataset: //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Boundary Conditions/DS2NormalD
                                            Shape: (7201, 2)
                                            Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Boundary Conditions/DS2NormalD:
        2D Area: b'BaldEagleCr'
        Columns: [b'Stage' b'Flow']
        Flow: b'cfs'
        Stage: b'ft'
                                        Dataset: //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Boundary Conditions/DS2NormalD - Flow per Face
                                            Shape: (7201, 11)
                                            Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Boundary Conditions/DS2NormalD - Flow per Face:
        2D Area: b'BaldEagleCr'
        Faces: [37551  2157  2032  1904   762  1552  1444  1329  1223  1104   983]
        Units: b'cfs'
                                        Dataset: //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Boundary Conditions/DS2NormalD - Stage per Face
                                            Shape: (7201, 11)
                                            Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Boundary Conditions/DS2NormalD - Stage per Face:
        2D Area: b'BaldEagleCr'
        Faces: [37551  2157  2032  1904   762  1552  1444  1329  1223  1104   983]
        Units: b'ft'
                                        Dataset: //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Boundary Conditions/DSNormalDepth
                                            Shape: (7201, 2)
                                            Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Boundary Conditions/DSNormalDepth:
        2D Area: b'BaldEagleCr'
        Columns: [b'Stage' b'Flow']
        Flow: b'cfs'
        Stage: b'ft'
                                        Dataset: //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Boundary Conditions/DSNormalDepth - Flow per Face
                                            Shape: (7201, 7)
                                            Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Boundary Conditions/DSNormalDepth - Flow per Face:
        2D Area: b'BaldEagleCr'
        Faces: [2954 2960 2823 2829 2683 2679 2540]
        Units: b'cfs'
                                        Dataset: //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Boundary Conditions/DSNormalDepth - Stage per Face
                                            Shape: (7201, 7)
                                            Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Boundary Conditions/DSNormalDepth - Stage per Face:
        2D Area: b'BaldEagleCr'
        Faces: [2954 2960 2823 2829 2683 2679 2540]
        Units: b'ft'
                                        Dataset: //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Boundary Conditions/Upstream Inflow
                                            Shape: (7201, 2)
                                            Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Boundary Conditions/Upstream Inflow:
        2D Area: b'BaldEagleCr'
        Columns: [b'Stage' b'Flow']
        Flow: b'cfs'
        Stage: b'ft'
                                        Dataset: //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Boundary Conditions/Upstream Inflow - Flow per Face
                                            Shape: (7201, 9)
                                            Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Boundary Conditions/Upstream Inflow - Flow per Face:
        2D Area: b'BaldEagleCr'
        Cells: [19542 19545 19544 19546 19548 19547 19550 19551 19514]
        Faces: [37450 37483 37482 37504 37524 37522 37536 37539 37197]
        Units: b'cfs'
                                        Dataset: //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Boundary Conditions/Upstream Inflow - Stage per Face
                                            Shape: (7201, 9)
                                            Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Boundary Conditions/Upstream Inflow - Stage per Face:
        2D Area: b'BaldEagleCr'
        Faces: [19542 19545 19544 19546 19548 19547 19550 19551 19514]
        Units: b'ft'
                                    Group: //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations
                                        Dataset: //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Inner Iteration Number
                                            Shape: (7201, 1)
                                            Dtype: int32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Inner Iteration Number:
        Description: b'Sum of inner-loop iterations over all outer-loop iterations'
                                        Dataset: //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Inner Max Volume Residual
                                            Shape: (7201, 1)
                                            Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Inner Max Volume Residual:
        Description: b'Max of inner-loop volume residual for last outer-loop iteration'
        Units: b'ft'
                                        Dataset: //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Inner Max Volume Residual Cell
                                            Shape: (7201, 1)
                                            Dtype: int32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Inner Max Volume Residual Cell:
        Description: b'Cell location of max volume residual for inner-loop during last outer-loop iteration'
                                        Dataset: //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Max Courant
                                            Shape: (7201, 1)
                                            Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Max Courant:
        Description: b'Maximum Courant Values'
                                        Dataset: //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Max Courant Face
                                            Shape: (7201, 1)
                                            Dtype: int32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Max Courant Face:
        Description: b'Face Index of Maximum Courant Values'
                                        Dataset: //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Max Face Velocity
                                            Shape: (7201, 1)
                                            Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Max Face Velocity:
        Description: b'Maximum face velocity for 2D area'
        Units: b'ft/s'
                                        Dataset: //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Max Face Velocity Face
                                            Shape: (7201, 1)
                                            Dtype: int32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Max Face Velocity Face:
        Description: b'Face ID of maximum face velocity for 2D area'
                                        Dataset: //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Max Water Surface
                                            Shape: (7201, 1)
                                            Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Max Water Surface:
        Description: b'Maximum water surface elevation for 2D area'
        Units: b'ft'
                                        Dataset: //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Max Water Surface Cell
                                            Shape: (7201, 1)
                                            Dtype: int32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Max Water Surface Cell:
        Description: b'Cell of minimum water surface elevation for 2D area'
                                        Dataset: //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Min Water Surface
                                            Shape: (7201, 1)
                                            Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Min Water Surface:
        Description: b'Minimum water surface elevation for 2D area'
        Units: b'ft'
                                        Dataset: //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Min Water Surface Cell
                                            Shape: (7201, 1)
                                            Dtype: int32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Min Water Surface Cell:
        Description: b'Cell of minimum water surface elevation for 2D area'
                                        Dataset: //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Outer Iteration Number
                                            Shape: (7201, 1)
                                            Dtype: int32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Outer Iteration Number:
        Description: b'Number of outer-loop iterations'
                                        Dataset: //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Outer Max Water Surface Correction
                                            Shape: (7201, 1)
                                            Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Outer Max Water Surface Correction:
        Description: b'Max water surface correction for last outer-loop iteration'
        Units: b'ft'
                                        Dataset: //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Outer Max Water Surface Correction Cell
                                            Shape: (7201, 1)
                                            Dtype: int32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Outer Max Water Surface Correction Cell:
        Description: b'Cell location of max water surface correction at last outer-loop iteration'
                                        Dataset: //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Outer Status
                                            Shape: (7201, 1)
                                            Dtype: int32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Outer Status:
        Description: b'1:ConvMax, 2:ConvRMS, 3:Stall, 4:Iter, 5:Small, -1:Max, -2:Div'
                                        Dataset: //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Percent Active Cells
                                            Shape: (7201, 1)
                                            Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Percent Active Cells:
        Description: b'Percentage of active (wet) cells'
        Units: b'Percent by number of cells'
                                        Dataset: //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Time Step
                                            Shape: (7201, 1)
                                            Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Time Step:
        Units: b's'
                                        Dataset: //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Total Iteration Number
                                            Shape: (7201, 1)
                                            Dtype: int32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Total Iteration Number:
        Description: b'Sum of inner and outer iterations'
                                        Dataset: //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Volume
                                            Shape: (7201, 1)
                                            Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Volume:
        Description: b'Percentage of active (wet) cells'
        Units: b'Acre-Feet'
                                        Dataset: //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Volume Error
                                            Shape: (7201, 1)
                                            Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/2D Flow Areas/BaldEagleCr/Computations/Volume Error:
        Description: b'Volume error for 2D area'
        Units: b'ft^3'
                            Group: //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/Boundary Conditions
                                Dataset: //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/Boundary Conditions/DS2NormalD
                                    Shape: (7201, 2)
                                    Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/Boundary Conditions/DS2NormalD:
        2D Area: b'BaldEagleCr'
        Columns: [b'Stage' b'Flow']
        Flow: b'cfs'
        Stage: b'ft'
                                Dataset: //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/Boundary Conditions/DS2NormalD - Flow per Face
                                    Shape: (7201, 11)
                                    Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/Boundary Conditions/DS2NormalD - Flow per Face:
        2D Area: b'BaldEagleCr'
        Faces: [37551  2157  2032  1904   762  1552  1444  1329  1223  1104   983]
        Units: b'cfs'
                                Dataset: //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/Boundary Conditions/DS2NormalD - Stage per Face
                                    Shape: (7201, 11)
                                    Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/Boundary Conditions/DS2NormalD - Stage per Face:
        2D Area: b'BaldEagleCr'
        Faces: [37551  2157  2032  1904   762  1552  1444  1329  1223  1104   983]
        Units: b'ft'
                                Dataset: //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/Boundary Conditions/DSNormalDepth
                                    Shape: (7201, 2)
                                    Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/Boundary Conditions/DSNormalDepth:
        2D Area: b'BaldEagleCr'
        Columns: [b'Stage' b'Flow']
        Flow: b'cfs'
        Stage: b'ft'
                                Dataset: //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/Boundary Conditions/DSNormalDepth - Flow per Face
                                    Shape: (7201, 7)
                                    Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/Boundary Conditions/DSNormalDepth - Flow per Face:
        2D Area: b'BaldEagleCr'
        Faces: [2954 2960 2823 2829 2683 2679 2540]
        Units: b'cfs'
                                Dataset: //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/Boundary Conditions/DSNormalDepth - Stage per Face
                                    Shape: (7201, 7)
                                    Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/Boundary Conditions/DSNormalDepth - Stage per Face:
        2D Area: b'BaldEagleCr'
        Faces: [2954 2960 2823 2829 2683 2679 2540]
        Units: b'ft'
                                Dataset: //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/Boundary Conditions/Upstream Inflow
                                    Shape: (7201, 2)
                                    Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/Boundary Conditions/Upstream Inflow:
        2D Area: b'BaldEagleCr'
        Columns: [b'Stage' b'Flow']
        Flow: b'cfs'
        Stage: b'ft'
                                Dataset: //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/Boundary Conditions/Upstream Inflow - Flow per Face
                                    Shape: (7201, 9)
                                    Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/Boundary Conditions/Upstream Inflow - Flow per Face:
        2D Area: b'BaldEagleCr'
        Cells: [19542 19545 19544 19546 19548 19547 19550 19551 19514]
        Faces: [37450 37483 37482 37504 37524 37522 37536 37539 37197]
        Units: b'cfs'
                                Dataset: //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/Boundary Conditions/Upstream Inflow - Stage per Face
                                    Shape: (7201, 9)
                                    Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/Boundary Conditions/Upstream Inflow - Stage per Face:
        2D Area: b'BaldEagleCr'
        Faces: [19542 19545 19544 19546 19548 19547 19550 19551 19514]
        Units: b'ft'
                            Group: //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/Calibration Regions
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/Calibration Regions:
        Vol Accounting in: b'acre-ft'
                                Dataset: //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/Calibration Regions/Flow Roughness Factor
                                    Shape: (7201, 1)
                                    Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/Calibration Regions/Flow Roughness Factor:
        Units: b'-'
                                Dataset: //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/Calibration Regions/Inflow - Perimeter
                                    Shape: (7201, 1)
                                    Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/Calibration Regions/Inflow - Perimeter:
        Units: b'cfs'
                                Dataset: //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/Calibration Regions/Net Inflow - Internal
                                    Shape: (7201, 1)
                                    Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/Calibration Regions/Net Inflow - Internal:
        Units: b'cfs'
                                Dataset: //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/Calibration Regions/Net Inflow - Perimeter
                                    Shape: (7201, 1)
                                    Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/Calibration Regions/Net Inflow - Perimeter:
        Units: b'cfs'
                                Dataset: //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/Calibration Regions/Outflow - Perimeter
                                    Shape: (7201, 1)
                                    Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/Calibration Regions/Outflow - Perimeter:
        Units: b'cfs'
                                Dataset: //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/Calibration Regions/Volume
                                    Shape: (7201, 1)
                                    Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/Calibration Regions/Volume:
        Units: b'acre-ft'
                                Dataset: //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/Calibration Regions/Volume Error
                                    Shape: (7201, 1)
                                    Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/Calibration Regions/Volume Error:
        Units: b'acre-ft'
                                Dataset: //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/Calibration Regions/WSE Avg
                                    Shape: (7201, 1)
                                    Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/Calibration Regions/WSE Avg:
        Units: b'ft'
                                Dataset: //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/Calibration Regions/WSE Max
                                    Shape: (7201, 1)
                                    Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/Calibration Regions/WSE Max:
        Units: b'ft'
                                Dataset: //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/Calibration Regions/WSE Min
                                    Shape: (7201, 1)
                                    Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/Calibration Regions/WSE Min:
        Units: b'ft'
                            Group: //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/SA 2D Area Conn
                                Group: //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam:
        Node Pointer: 2
                                    Group: //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/Gate Groups
                                        Dataset: //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/Gate Groups/Gate #1
                                            Shape: (7201, 6)
                                            Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/Gate Groups/Gate #1:
        Variable_Unit: [[b'Gate Flow' b'cfs']
 [b'Gate Opening' b'ft']
 [b'Stage HW' b'ft']
 [b'Stage TW' b'ft']
 [b'Gate Area' b'ft^2']
 [b'Gate Submergence' b'']]
                                    Group: //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/Geometric Info
                                        Group: //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/Geometric Info/Gates and Culverts
                                            Group: //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/Geometric Info/Gates and Culverts/Gate #1
                                                Dataset: //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/Geometric Info/Gates and Culverts/Gate #1/Gate CL Cell HW
                                                    Shape: (2,)
                                                    Dtype: int32
                                                Dataset: //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/Geometric Info/Gates and Culverts/Gate #1/Gate CL Cell TW
                                                    Shape: (2,)
                                                    Dtype: int32
                                        Dataset: //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/Geometric Info/Headwater Face Points
                                            Shape: (28,)
                                            Dtype: int32
                                        Dataset: //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/Geometric Info/Headwater Face Points Stations
                                            Shape: (28,)
                                            Dtype: float32
                                        Dataset: //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/Geometric Info/Tailwater Face Points
                                            Shape: (28,)
                                            Dtype: int32
                                        Dataset: //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/Geometric Info/Tailwater Face Points Stations
                                            Shape: (28,)
                                            Dtype: float32
                                    Group: //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/HW TW Cells
                                        Dataset: //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/HW TW Cells/Water Surface HW Cells
                                            Shape: (7201, 27)
                                            Dtype: float32
                                        Dataset: //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/HW TW Cells/Water Surface TW Cells
                                            Shape: (7201, 27)
                                            Dtype: float32
                                    Group: //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/HW TW Segments
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/HW TW Segments:
        HW TW Segments: b'Structure Segments Between any HW and/or TW Intersection'
                                        Dataset: //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/HW TW Segments/Flow
                                            Shape: (1, 28)
                                            Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/HW TW Segments/Flow:
        Flow: b'Flow Across the given Segment for the Time Step'
        Units: b'cfs'
                                        Dataset: //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/HW TW Segments/HW TW Station
                                            Shape: (28,)
                                            Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/HW TW Segments/HW TW Station:
        HW TW Station: b'Starting/Ending station for given segment'
                                        Dataset: //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/HW TW Segments/Headwater Cells
                                            Shape: (27,)
                                            Dtype: |S10
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/HW TW Segments/Headwater Cells:
        Headwater Cells: b'The given Segment is inside of this Cell'
                                        Dataset: //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/HW TW Segments/Tailwater Cells
                                            Shape: (27,)
                                            Dtype: |S10
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/HW TW Segments/Tailwater Cells:
        Tailwater Cells: b'The given Segment is inside of this Cell'
                                        Dataset: //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/HW TW Segments/Water Surface HW
                                            Shape: (1, 28)
                                            Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/HW TW Segments/Water Surface HW:
        Units: b'ft'
        Water Surface HW: b'WSEL on HW side for given Station Location and Time Step'
                                        Dataset: //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/HW TW Segments/Water Surface TW
                                            Shape: (1, 28)
                                            Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/HW TW Segments/Water Surface TW:
        Units: b'ft'
        Water Surface TW: b'WSEL on TW side for given Station Location and Time Step'
                                    Dataset: //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/Headwater Cells
                                        Shape: (27,)
                                        Dtype: int32
                                    Dataset: //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/Structure Variables
                                        Shape: (7201, 5)
                                        Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/Structure Variables:
        Starting Weir Sta: -0.07999999821186066
        Variable_Unit: [[b'Total Flow' b'cfs']
 [b'Weir Flow' b'cfs']
 [b'Stage HW' b'ft']
 [b'Stage TW' b'ft']
 [b'Total Gate Flow' b'cfs']]
        Weir Sta for WS HW: 5268.0
        Weir Sta for WS TW: 5268.0
                                    Dataset: //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/Tailwater Cells
                                        Shape: (27,)
                                        Dtype: int32
                            Dataset: //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/Time
                                Shape: (7201,)
                                Dtype: float64
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/Time:
        Number of actual Time Steps: [7201]
        Time: b'days'
                            Dataset: //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/Time Date Stamp
                                Shape: (7201,)
                                Dtype: |S19
                            Dataset: //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/Time Date Stamp (ms)
                                Shape: (7201,)
                                Dtype: |S22
                            Dataset: //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/Time Step
                                Shape: (7201,)
                                Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Hydrograph Output/Unsteady Time Series/Time Step:
        Time Step: b'Seconds'
                    Group: //Results/Unsteady/Output/Output Blocks/DSS Profile Output
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Profile Output:
        Output Block Name: [b'DSS Profile Output']
                        Group: //Results/Unsteady/Output/Output Blocks/DSS Profile Output/Unsteady Time Series
                            Group: //Results/Unsteady/Output/Output Blocks/DSS Profile Output/Unsteady Time Series/SA 2D Area Conn
                                Group: //Results/Unsteady/Output/Output Blocks/DSS Profile Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Profile Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam:
        Node Pointer: 2
                                    Group: //Results/Unsteady/Output/Output Blocks/DSS Profile Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/Gate Groups
                                        Dataset: //Results/Unsteady/Output/Output Blocks/DSS Profile Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/Gate Groups/Gate #1
                                            Shape: (121, 6)
                                            Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Profile Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/Gate Groups/Gate #1:
        Variable_Unit: [[b'Gate Flow' b'cfs']
 [b'Gate Opening' b'ft']
 [b'Stage HW' b'ft']
 [b'Stage TW' b'ft']
 [b'Gate Area' b'ft^2']
 [b'Gate Submergence' b'']]
                                    Group: //Results/Unsteady/Output/Output Blocks/DSS Profile Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/Geometric Info
                                        Group: //Results/Unsteady/Output/Output Blocks/DSS Profile Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/Geometric Info/Gates and Culverts
                                            Group: //Results/Unsteady/Output/Output Blocks/DSS Profile Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/Geometric Info/Gates and Culverts/Gate #1
                                                Dataset: //Results/Unsteady/Output/Output Blocks/DSS Profile Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/Geometric Info/Gates and Culverts/Gate #1/Gate CL Cell HW
                                                    Shape: (2,)
                                                    Dtype: int32
                                                Dataset: //Results/Unsteady/Output/Output Blocks/DSS Profile Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/Geometric Info/Gates and Culverts/Gate #1/Gate CL Cell TW
                                                    Shape: (2,)
                                                    Dtype: int32
                                        Dataset: //Results/Unsteady/Output/Output Blocks/DSS Profile Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/Geometric Info/Headwater Face Points
                                            Shape: (28,)
                                            Dtype: int32
                                        Dataset: //Results/Unsteady/Output/Output Blocks/DSS Profile Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/Geometric Info/Headwater Face Points Stations
                                            Shape: (28,)
                                            Dtype: float32
                                        Dataset: //Results/Unsteady/Output/Output Blocks/DSS Profile Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/Geometric Info/Tailwater Face Points
                                            Shape: (28,)
                                            Dtype: int32
                                        Dataset: //Results/Unsteady/Output/Output Blocks/DSS Profile Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/Geometric Info/Tailwater Face Points Stations
                                            Shape: (28,)
                                            Dtype: float32
                                    Group: //Results/Unsteady/Output/Output Blocks/DSS Profile Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/HW TW Cells
                                        Dataset: //Results/Unsteady/Output/Output Blocks/DSS Profile Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/HW TW Cells/Water Surface HW Cells
                                            Shape: (121, 27)
                                            Dtype: float32
                                        Dataset: //Results/Unsteady/Output/Output Blocks/DSS Profile Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/HW TW Cells/Water Surface TW Cells
                                            Shape: (121, 27)
                                            Dtype: float32
                                    Group: //Results/Unsteady/Output/Output Blocks/DSS Profile Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/HW TW Segments
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Profile Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/HW TW Segments:
        HW TW Segments: b'Structure Segments Between any HW and/or TW Intersection'
                                        Dataset: //Results/Unsteady/Output/Output Blocks/DSS Profile Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/HW TW Segments/Flow
                                            Shape: (121, 28)
                                            Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Profile Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/HW TW Segments/Flow:
        Flow: b'Flow Across the given Segment for the Time Step'
        Units: b'cfs'
                                        Dataset: //Results/Unsteady/Output/Output Blocks/DSS Profile Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/HW TW Segments/HW TW Station
                                            Shape: (28,)
                                            Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Profile Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/HW TW Segments/HW TW Station:
        HW TW Station: b'Starting/Ending station for given segment'
                                        Dataset: //Results/Unsteady/Output/Output Blocks/DSS Profile Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/HW TW Segments/Headwater Cells
                                            Shape: (27,)
                                            Dtype: |S10
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Profile Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/HW TW Segments/Headwater Cells:
        Headwater Cells: b'The given Segment is inside of this Cell'
                                        Dataset: //Results/Unsteady/Output/Output Blocks/DSS Profile Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/HW TW Segments/Tailwater Cells
                                            Shape: (27,)
                                            Dtype: |S10
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Profile Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/HW TW Segments/Tailwater Cells:
        Tailwater Cells: b'The given Segment is inside of this Cell'
                                        Dataset: //Results/Unsteady/Output/Output Blocks/DSS Profile Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/HW TW Segments/Water Surface HW
                                            Shape: (121, 28)
                                            Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Profile Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/HW TW Segments/Water Surface HW:
        Units: b'ft'
        Water Surface HW: b'WSEL on HW side for given Station Location and Time Step'
                                        Dataset: //Results/Unsteady/Output/Output Blocks/DSS Profile Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/HW TW Segments/Water Surface TW
                                            Shape: (121, 28)
                                            Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Profile Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/HW TW Segments/Water Surface TW:
        Units: b'ft'
        Water Surface TW: b'WSEL on TW side for given Station Location and Time Step'
                                    Dataset: //Results/Unsteady/Output/Output Blocks/DSS Profile Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/Headwater Cells
                                        Shape: (27,)
                                        Dtype: int32
                                    Dataset: //Results/Unsteady/Output/Output Blocks/DSS Profile Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/Structure Variables
                                        Shape: (121, 5)
                                        Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Profile Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/Structure Variables:
        Starting Weir Sta: -0.07999999821186066
        Variable_Unit: [[b'Total Flow' b'cfs']
 [b'Weir Flow' b'cfs']
 [b'Stage HW' b'ft']
 [b'Stage TW' b'ft']
 [b'Total Gate Flow' b'cfs']]
        Weir Sta for WS HW: 5268.0
        Weir Sta for WS TW: 5268.0
                                    Dataset: //Results/Unsteady/Output/Output Blocks/DSS Profile Output/Unsteady Time Series/SA 2D Area Conn/BaldEagleCr Sayers Dam/Tailwater Cells
                                        Shape: (27,)
                                        Dtype: int32
                            Dataset: //Results/Unsteady/Output/Output Blocks/DSS Profile Output/Unsteady Time Series/Time
                                Shape: (121,)
                                Dtype: float64
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Profile Output/Unsteady Time Series/Time:
        Number of actual Time Steps: [121]
        Time: b'days'
                            Dataset: //Results/Unsteady/Output/Output Blocks/DSS Profile Output/Unsteady Time Series/Time Date Stamp
                                Shape: (121,)
                                Dtype: |S19
                            Dataset: //Results/Unsteady/Output/Output Blocks/DSS Profile Output/Unsteady Time Series/Time Date Stamp (ms)
                                Shape: (121,)
                                Dtype: |S22
                            Dataset: //Results/Unsteady/Output/Output Blocks/DSS Profile Output/Unsteady Time Series/Time Step
                                Shape: (121,)
                                Dtype: float32
    Attributes for //Results/Unsteady/Output/Output Blocks/DSS Profile Output/Unsteady Time Series/Time Step:
        Time Step: b'Seconds'
            Group: //Results/Unsteady/Summary
    Attributes for //Results/Unsteady/Summary:
        Computation Time DSS: b'00:00:00'
        Computation Time Total: b'00:06:37'
        Maximum WSEL Error: 0.0
        Maximum number of cores: 6
        Run Time Window: b'06NOV2024 14:16:15 to 06NOV2024 14:22:51'
        Solution: b'Unsteady Finished Successfully'
        Time Solution Went Unstable: nan
        Time Stamp Solution Went Unstable: b'Not Applicable'
                Group: //Results/Unsteady/Summary/Volume Accounting
    Attributes for //Results/Unsteady/Summary/Volume Accounting:
        Error: 0.46921461820602417
        Error Percent: 0.0003311674518045038
        Precipitation Excess (acre feet): 3756.872802734375
        Precipitation Excess (inches): 1.707614779472351
        Total Boundary Flux of Water In: 141685.0
        Total Boundary Flux of Water Out: 17240.263671875
        Vol Accounting in: b'Acre Feet'
        Volume Ending: 124445.203125
        Volume Starting: 0.0
                    Group: //Results/Unsteady/Summary/Volume Accounting/Volume Accounting 1D
    Attributes for //Results/Unsteady/Summary/Volume Accounting/Volume Accounting 1D:
        Diversions: -0.0
        Flow DS Out: 0.0
        Flow US In: 0.0
        Groundwater: -0.0
        Hydro Lat: 0.0
        Hydro SA: 0.0
        Precip Excess (acre feet): 0.0
        Precip Excess (inches): 0.0
        Reach Final 1D: 0.0
        Reach Start 1D: 0.0
        SA Final: 0.0
        SA Starting: 0.0
        Vol Accounting in: b'Acre Feet'
                    Group: //Results/Unsteady/Summary/Volume Accounting/Volume Accounting 2D
    Attributes for //Results/Unsteady/Summary/Volume Accounting/Volume Accounting 2D:
        Vol Accounting in: b'Acre Feet'
                        Group: //Results/Unsteady/Summary/Volume Accounting/Volume Accounting 2D/BaldEagleCr
    Attributes for //Results/Unsteady/Summary/Volume Accounting/Volume Accounting 2D/BaldEagleCr:
        Cum Inflow: 141685.0
        Cum Outflow: 17240.263671875
        Error: 0.46921461820602417
        Error Percent: 0.0003311674518045038
        Precip Excess (acre feet): 3756.872802734375
        Precip Excess (inches): 1.707614779472351
        Vol Accounting in: b'Acre Feet'
        Vol Ending: 124445.203125
        Vol Starting: 0.0
In [8]:
# Example: Extract runtime and compute time data
print("\nExample 2: Extracting runtime and compute time data")
runtime_df = HdfResultsPlan.get_runtime_data(hdf_input=plan_number, ras_object=bald_eagle)
if runtime_df is not None:
    display(runtime_df)
else:
    print("No runtime data found.")
2024-11-06 16:14:26,094 - ras_commander.HdfResultsPlan - INFO - Using HDF file: c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D\BaldEagleDamBrk.p06.hdf
2024-11-06 16:14:26,095 - ras_commander.HdfResultsPlan - INFO - Extracting Plan Information from: BaldEagleDamBrk.p06.hdf
2024-11-06 16:14:26,096 - ras_commander.HdfResultsPlan - INFO - Plan Name: Gridded Precip - Infiltration
2024-11-06 16:14:26,098 - ras_commander.HdfResultsPlan - INFO - Simulation Start Time: 09Sep2018 00:00:00
2024-11-06 16:14:26,099 - ras_commander.HdfResultsPlan - INFO - Simulation End Time: 14Sep2018 00:00:00
2024-11-06 16:14:26,100 - ras_commander.HdfResultsPlan - INFO - Simulation Duration (hours): 120.0
Example 2: Extracting runtime and compute time data
Plan Name File Name Simulation Start Time Simulation End Time Simulation Duration (s) Simulation Time (hr) Completing Geometry (hr) Preprocessing Geometry (hr) Completing Event Conditions (hr) Unsteady Flow Computations (hr) Complete Process (hr) Unsteady Flow Speed (hr/hr) Complete Process Speed (hr/hr)
0 Gridded Precip - Infiltration BaldEagleDamBrk.p06.hdf 09Sep2018 00:00:00 14Sep2018 00:00:00 432000.0 120.0 N/A 0.000156 N/A 0.111089 0.12043 1080.210641 996.431759

runtime_df example output:

Plan Name File Name Simulation Start Time Simulation End Time Simulation Duration (s) Simulation Time (hr) Completing Geometry (hr) Preprocessing Geometry (hr) Completing Event Conditions (hr) Unsteady Flow Computations (hr) Complete Process (hr) Unsteady Flow Speed (hr/hr) Complete Process Speed (hr/hr)
Gridded Precip - Infiltration BaldEagleDamBrk.p06.hdf 09Sep2018 00:00:00 14Sep2018 00:00:00 432000.0 120.0 N/A 0.000113 N/A 0.074436 0.080951 1612.126776 1482.386368

Table of all the functions in the RasGeomHdf class from the ras_commander/RasGeomHdf.py file:

Function Name Description
projection Returns the projection of the RAS geometry as a pyproj.CRS object
get_geom_attrs Returns base geometry attributes from a HEC-RAS HDF file

| mesh_area_names | Returns a list of the 2D mesh area names of the RAS geometry | | get_geom_2d_flow_area_attrs | Returns geometry 2d flow area attributes from a HEC-RAS HDF file | | mesh_areas | Returns 2D flow area perimeter polygons | | mesh_cell_polygons | Returns 2D flow mesh cell polygons | | mesh_cell_points | Returns 2D flow mesh cell points | | mesh_cell_faces | Returns 2D flow mesh cell faces |

| get_geom_structures_attrs | Returns geometry structures attributes from a HEC-RAS HDF file |

| bc_lines | Returns 2D mesh area boundary condition lines | | breaklines | Returns 2D mesh area breaklines |

| refinement_regions | Returns 2D mesh area refinement regions | | structures | Returns the model structures | | reference_lines_names | Returns reference line names | | reference_points_names | Returns reference point names | | reference_lines | Returns the reference lines geometry and attributes | | reference_points | Returns the reference points geometry and attributes | | cross_sections | Returns the model 1D cross sections | | river_reaches | Returns the model 1D river reach lines | | cross_sections_elevations | Returns the model cross section elevation information |

In [9]:
# For all of the RasGeomHdf Class Functions, we will use geom_hdf_path
print(geom_hdf_path)

# For the example project, plan 06 is associated with geometry 09
# If you want to call the geometry by number, call RasHdfGeom functions with a number
# Otherwise, if you want to look up geometry hdf path by plan number, follow the logic in the previous code cells
c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D\BaldEagleDamBrk.g09.hdf
In [10]:
# Use HdfUtils for extracting projection
print("\nExtracting Projection from HDF")
projection = HdfBase.get_projection(hdf_path=geom_hdf_path)
if projection:
    print(f"Projection: {projection}")
else:
    print("No projection information found.")
2024-11-06 16:14:26,165 - ras_commander.HdfBase - INFO - Using HDF file: c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D\BaldEagleDamBrk.g09.hdf
Extracting Projection from HDF
Projection: PROJCS["NAD_1983_StatePlane_Pennsylvania_North_FIPS_3701_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-77.75],PARAMETER["Standard_Parallel_1",40.88333333333333],PARAMETER["Standard_Parallel_2",41.95],PARAMETER["Latitude_Of_Origin",40.16666666666666],UNIT["Foot_US",0.3048006096012192]]
In [11]:
# Use HdfPlan for geometry-related operations
print("\nExample: Extracting Geometry Information")
geom_attrs = HdfPlan.get_geometry_information(geom_hdf_path)
display(geom_attrs)
2024-11-06 16:14:26,186 - ras_commander.HdfPlan - INFO - Calling get_geometry_information
2024-11-06 16:14:26,188 - ras_commander.HdfPlan - INFO - Using HDF file: c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D\BaldEagleDamBrk.g09.hdf
2024-11-06 16:14:26,196 - ras_commander.HdfPlan - INFO - Finished get_geometry_information
Example: Extracting Geometry Information
Getting geometry attributes from c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D\BaldEagleDamBrk.g09.hdf
Checking for Geometry group in c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D\BaldEagleDamBrk.g09.hdf
Getting root level geometry attributes
Successfully extracted root level geometry attributes
Value
Complete Geometry True
Extents [1960041.35636708, 2092643.59732271, 285497.89...
Geometry Time 2024-11-06 14:15:29
Infiltration Date Last Modified 2022-03-11 13:52:44
Infiltration File Date 2020-11-24 13:24:58
Infiltration Filename .\Soils Data\Infiltration.hdf
Infiltration Layername Infiltration
Land Cover Date Last Modified 2022-03-11 13:45:08
Land Cover File Date 2022-03-11 13:45:08
Land Cover Filename .\Land Classification\LandCover.hdf
Land Cover Layername LandCover
Percent Impervious Date Last Modified 2022-03-11 13:45:08
Percent Impervious File Date 2022-03-11 13:45:08
Percent Impervious Filename .\Land Classification\LandCover.hdf
Percent Impervious Layername LandCover
SI Units False
Terrain File Date 2015-02-09 08:26:58
Terrain Filename .\Terrain\Terrain50.hdf
Terrain Layername Terrain50
Title Single 2D Area - Internal Dam Structure
Version 1.0.20 (20Sep2024)

geom_attrs output:

Complete Geometry Extents Geometry Time Infiltration Date Last Modified Infiltration File Date Infiltration Filename Infiltration Layername Land Cover Date Last Modified Land Cover File Date Land Cover Filename ... Percent Impervious Date Last Modified Percent Impervious File Date Percent Impervious Filename Percent Impervious Layername SI Units Terrain File Date Terrain Filename Terrain Layername Title Version
0 True [1960041.35636708, 2092643.59732271, 285497.89...] 27Oct2024 20:09:19 11MAR2022 13:52:44 24NOV2020 13:24:58 .\Soils Data\Infiltration.hdf Infiltration 11MAR2022 13:45:08 11MAR2022 13:45:08 .\Land Classification\LandCover.hdf ... 11MAR2022 13:45:08 11MAR2022 13:45:08 .\Land Classification\LandCover.hdf LandCover False 09FEB2015 08:26:58 .\Terrain\Terrain50.hdf Terrain50 Single 2D Area - Internal Dam Structure 1.0.20 (20Sep2024)
In [12]:
# Use HdfMesh for geometry-related operations
print("\nExample 3: Listing 2D Flow Area Names")
flow_area_names = HdfMesh.get_mesh_area_names(geom_hdf_path)
print("2D Flow Area Name (returned as list):\n", flow_area_names)
# Note: this is returned as a list because it is used internally by other functions.  
2024-11-06 16:14:26,221 - ras_commander.HdfMesh - INFO - Using HDF file: c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D\BaldEagleDamBrk.g09.hdf
Example 3: Listing 2D Flow Area Names
2D Flow Area Name (returned as list):
 ['BaldEagleCr']
In [13]:
# Example: Get 2D Flow Area Attributes (get_mesh_area_attributes)
print("\nExample: Extracting 2D Flow Area Attributes")
flow_area_attributes = HdfMesh.get_mesh_area_attributes(geom_hdf_path)
display(flow_area_attributes)
2024-11-06 16:14:26,237 - ras_commander.HdfMesh - INFO - Using HDF file: c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D\BaldEagleDamBrk.g09.hdf
Example: Extracting 2D Flow Area Attributes
Value
Name b'BaldEagleCr'
Locked 0
Mann 0.04
Multiple Face Mann n 0
Composite LC 0
Cell Vol Tol 0.01
Cell Min Area Fraction 0.01
Face Profile Tol 0.01
Face Area Tol 0.01
Face Conv Ratio 0.02
Laminar Depth 0.2
Min Face Length Ratio 0.05
Spacing dx 250.0
Spacing dy 250.0
Shift dx NaN
Shift dy NaN
Cell Count 18066

flow_area_df:

Value | Name | b'BaldEagleCr' | |-----------------------------|-----------------| | Locked | 0 | | Mann | 0.04 | | Multiple Face Mann n | 0 | | Composite LC | 0 | | Cell Vol Tol | 0.01 | | Cell Min Area Fraction | 0.01 | | Face Profile Tol | 0.01 | | Face Area Tol | 0.01 | | Face Conv Ratio | 0.02 | | Laminar Depth | 0.2 | | Min Face Length Ratio | 0.05 | | Spacing dx | 250.0 | | Spacing dy | 250.0 | | Shift dx | NaN | | Shift dy | NaN | | Cell Count | 18066 |

In [14]:
# Example: Get 2D Flow Area Perimeter Polygons (get_mesh_areas)
print("\nExample: Extracting 2D Flow Area Perimeter Polygons")
mesh_areas = HdfMesh.get_mesh_areas(geom_hdf_path, ras_object=bald_eagle)

# Plot the 2D Flow Area Perimeter Polygons
import matplotlib.pyplot as plt

fig, ax = plt.subplots(figsize=(12, 8))
mesh_areas.plot(ax=ax, edgecolor='black', facecolor='none')

# Add labels for each polygon
for idx, row in mesh_areas.iterrows():
    centroid = row.geometry.centroid
    # Check if 'Name' column exists, otherwise use a default label
    label = row.get('Name', f'Area {idx}')
    ax.annotate(label, (centroid.x, centroid.y), ha='center', va='center')

plt.title('2D Flow Area Perimeter Polygons')
plt.xlabel('Easting')
plt.ylabel('Northing')
plt.tight_layout()
plt.show()
2024-11-06 16:14:26,266 - ras_commander.HdfMesh - INFO - Using HDF file: c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D\BaldEagleDamBrk.g09.hdf
2024-11-06 16:14:26,267 - ras_commander.HdfMesh - INFO - Using existing HDF file: c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D\BaldEagleDamBrk.g09.hdf
2024-11-06 16:14:26,271 - ras_commander.HdfBase - INFO - Using HDF file: c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D\BaldEagleDamBrk.g09.hdf
Example: Extracting 2D Flow Area Perimeter Polygons
No description has been provided for this image
In [15]:
# Example: Extract mesh cell faces
print("\nExample: Extracting mesh cell faces")

# Get mesh cell faces
mesh_cell_faces = HdfMesh.get_mesh_cell_faces(geom_hdf_path, ras_object=bald_eagle)

# Display the first few rows of the mesh cell faces DataFrame
print("First few rows of mesh cell faces:")
display(mesh_cell_faces.head())
2024-11-06 16:14:26,653 - ras_commander.HdfMesh - INFO - Using HDF file: c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D\BaldEagleDamBrk.g09.hdf
2024-11-06 16:14:26,655 - ras_commander.HdfMesh - INFO - Using existing HDF file: c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D\BaldEagleDamBrk.g09.hdf
Example: Extracting mesh cell faces
2024-11-06 16:14:27,526 - ras_commander.HdfBase - INFO - Using existing HDF file: c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D\BaldEagleDamBrk.g09.hdf
First few rows of mesh cell faces:
mesh_name face_id geometry
0 BaldEagleCr 0 LINESTRING (2042125 351625, 2042375 351625)
1 BaldEagleCr 1 LINESTRING (2042375 351625, 2042375 351875)
2 BaldEagleCr 2 LINESTRING (2042375 351875, 2042125 351875)
3 BaldEagleCr 3 LINESTRING (2042125 351875, 2042125 351625)
4 BaldEagleCr 4 LINESTRING (2042375 351375, 2042375 351625)

mesh_cell_faces geodataframe:

flow_area_df:

mesh_name face_id geometry
BaldEagleCr 0 LINESTRING (2042125 351625, 2042375 351625)
BaldEagleCr 1 LINESTRING (2042375 351625, 2042375 351875)
BaldEagleCr 2 LINESTRING (2042375 351875, 2042125 351875)
BaldEagleCr 3 LINESTRING (2042125 351875, 2042125 351625)
BaldEagleCr 4 LINESTRING (2042375 351375, 2042375 351625)
In [16]:
from matplotlib.collections import LineCollection
import numpy as np

# Plot the mesh cell faces more efficiently
fig, ax = plt.subplots(figsize=(12, 8))

# Convert all geometries to numpy arrays at once for faster plotting
lines = [list(zip(*line.xy)) for line in mesh_cell_faces.geometry]
lines_collection = LineCollection(lines, colors='blue', linewidth=0.5, alpha=0.5)
ax.add_collection(lines_collection)

# Set plot title and labels
plt.title('Mesh Cell Faces')
plt.xlabel('Easting')
plt.ylabel('Northing')

# Calculate centroids once and store as numpy arrays
centroids = np.array([[geom.centroid.x, geom.centroid.y] for geom in mesh_cell_faces.geometry])

# Create scatter plot with numpy arrays
scatter = ax.scatter(
    centroids[:, 0],
    centroids[:, 1], 
    c=mesh_cell_faces['face_id'],
    cmap='viridis',
    s=1,
    alpha=0.5
)
plt.colorbar(scatter, label='Face ID')

# Set axis limits based on data bounds
ax.set_xlim(centroids[:, 0].min(), centroids[:, 0].max())
ax.set_ylim(centroids[:, 1].min(), centroids[:, 1].max())

plt.tight_layout()
plt.show()

# Calculate and display some statistics
print("\nMesh Cell Faces Statistics:")
print(f"Total number of cell faces: {len(mesh_cell_faces)}")
print(f"Number of unique meshes: {mesh_cell_faces['mesh_name'].nunique()}")
No description has been provided for this image
Mesh Cell Faces Statistics:
Total number of cell faces: 37594
Number of unique meshes: 1
In [17]:
# Function to find the nearest cell face to a given point
def find_nearest_cell_face(point, cell_faces_df):
    """
    Find the nearest cell face to a given point.

    Args:
        point (shapely.geometry.Point): The input point.
        cell_faces_df (GeoDataFrame): DataFrame containing cell face linestrings.

    Returns:
        int: The face_id of the nearest cell face.
        float: The distance to the nearest cell face.
    """
    # Calculate distances from the input point to all cell faces
    distances = cell_faces_df.geometry.distance(point)

    # Find the index of the minimum distance
    nearest_index = distances.idxmin()

    # Get the face_id and distance of the nearest cell face
    nearest_face_id = cell_faces_df.loc[nearest_index, 'face_id']
    nearest_distance = distances[nearest_index]

    return nearest_face_id, nearest_distance

# Example usage
print("\nExample: Finding the nearest cell face to a given point")

# Create a sample point (you can replace this with any point of interest)
from shapely.geometry import Point
from geopandas import GeoDataFrame

# Get the projection from the geometry file
# projection = HdfUtils.get_projection(hdf_path=geom_hdf_path) # This was done in a previous code cell
if projection:
    print(f"Using projection: {projection}")
else:
    print("No projection information found. Using default CRS.")
    projection = "EPSG:4326"  # Default to WGS84 if no projection is found

# Create the sample point with the correct CRS
sample_point = GeoDataFrame({'geometry': [Point(2042250, 351750)]}, crs=projection)

if not mesh_cell_faces.empty and not sample_point.empty:
    # Ensure the CRS of the sample point matches the mesh_cell_faces
    if sample_point.crs != mesh_cell_faces.crs:
        sample_point = sample_point.to_crs(mesh_cell_faces.crs)
    
    nearest_face_id, distance = find_nearest_cell_face(sample_point.geometry.iloc[0], mesh_cell_faces)
    print(f"Nearest cell face to point {sample_point.geometry.iloc[0].coords[0]}:")
    print(f"Face ID: {nearest_face_id}")
    print(f"Distance: {distance:.2f} units")

    # Visualize the result
    fig, ax = plt.subplots(figsize=(12, 8))
    
    # Plot all cell faces
    mesh_cell_faces.plot(ax=ax, color='blue', linewidth=0.5, alpha=0.5, label='Cell Faces')
    
    # Plot the sample point
    sample_point.plot(ax=ax, color='red', markersize=100, alpha=0.7, label='Sample Point')
    
    # Plot the nearest cell face
    nearest_face = mesh_cell_faces[mesh_cell_faces['face_id'] == nearest_face_id]
    nearest_face.plot(ax=ax, color='green', linewidth=2, alpha=0.7, label='Nearest Face')
    
    # Set labels and title
    ax.set_xlabel('X Coordinate')
    ax.set_ylabel('Y Coordinate')
    ax.set_title('Nearest Cell Face to Sample Point')
    
    # Add legend and grid
    ax.legend()
    ax.grid(True)
    
    # Adjust layout and display
    plt.tight_layout()
    plt.show()
else:
    print("Unable to perform nearest cell face search due to missing data.")
Example: Finding the nearest cell face to a given point
Using projection: PROJCS["NAD_1983_StatePlane_Pennsylvania_North_FIPS_3701_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-77.75],PARAMETER["Standard_Parallel_1",40.88333333333333],PARAMETER["Standard_Parallel_2",41.95],PARAMETER["Latitude_Of_Origin",40.16666666666666],UNIT["Foot_US",0.3048006096012192]]
Nearest cell face to point (2042250.0, 351750.0):
Face ID: 0
Distance: 125.00 units
No description has been provided for this image
In [18]:
# Example: Extract Cell Polygons
print("\nExample 6: Extracting Cell Polygons")
cell_polygons_df = HdfMesh.get_mesh_cell_polygons(geom_hdf_path, ras_object=bald_eagle)
2024-11-06 16:14:34,819 - ras_commander.HdfMesh - INFO - Using HDF file: c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D\BaldEagleDamBrk.g09.hdf
2024-11-06 16:14:34,821 - ras_commander.HdfMesh - INFO - Using existing HDF file: c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D\BaldEagleDamBrk.g09.hdf
2024-11-06 16:14:34,826 - ras_commander.HdfMesh - INFO - Using existing HDF file: c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D\BaldEagleDamBrk.g09.hdf
2024-11-06 16:14:34,828 - ras_commander.HdfMesh - INFO - Using existing HDF file: c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D\BaldEagleDamBrk.g09.hdf
Example 6: Extracting Cell Polygons
2024-11-06 16:14:36,350 - ras_commander.HdfBase - INFO - Using existing HDF file: c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D\BaldEagleDamBrk.g09.hdf
2024-11-06 16:14:40,056 - ras_commander.HdfBase - INFO - Using HDF file: c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D\BaldEagleDamBrk.g09.hdf

cell_polygons_df:

mesh_name cell_id geometry
BaldEagleCr 0 POLYGON ((2082875 370625, 2082723.922 370776.0...
BaldEagleCr 1 POLYGON ((2083125 370625, 2083125 370844.185, ...
BaldEagleCr 2 POLYGON ((2083375 370625, 2083375 370886.638, ...
BaldEagleCr 3 POLYGON ((2083625 370625, 2083625 370925.693, ...
BaldEagleCr 4 POLYGON ((2083875 370625, 2083875 370958.588, ...
In [19]:
# Plot Cell Polygons
if not cell_polygons_df.empty:
    display(cell_polygons_df.head())
else:
    print("No Cell Polygons found.")

# Plot cell polygons
if not cell_polygons_df.empty:
    fig, ax = plt.subplots(figsize=(12, 8))
    
    # Plot cell polygons
    cell_polygons_df.plot(ax=ax, edgecolor='blue', facecolor='none')
    
    # Set labels and title
    ax.set_xlabel('X Coordinate')
    ax.set_ylabel('Y Coordinate')
    ax.set_title('2D Flow Area Cell Polygons')
    
    # Add grid
    ax.grid(True)
    
    # Adjust layout and display
    plt.tight_layout()
    plt.show()
else:
    print("No cell polygon data available for plotting.")
mesh_name cell_id geometry
0 BaldEagleCr 0 POLYGON ((2082875 370625, 2082723.922 370776.0...
1 BaldEagleCr 1 POLYGON ((2083125 370625, 2083125 370844.185, ...
2 BaldEagleCr 2 POLYGON ((2083375 370625, 2083375 370886.638, ...
3 BaldEagleCr 3 POLYGON ((2083625 370625, 2083625 370925.693, ...
4 BaldEagleCr 4 POLYGON ((2083875 370625, 2083875 370958.588, ...
No description has been provided for this image
In [20]:
# Extract Cell Info
print("\nExample 5: Extracting Cell Info")
cell_info_df = HdfMesh.get_mesh_cell_points(geom_hdf_path, ras_object=bald_eagle)
2024-11-06 16:14:44,703 - ras_commander.HdfMesh - INFO - Using HDF file: c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D\BaldEagleDamBrk.g09.hdf
2024-11-06 16:14:44,705 - ras_commander.HdfMesh - INFO - Using existing HDF file: c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D\BaldEagleDamBrk.g09.hdf
Example 5: Extracting Cell Info
2024-11-06 16:14:44,977 - ras_commander.HdfBase - INFO - Using existing HDF file: c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D\BaldEagleDamBrk.g09.hdf

cell_info_df:

mesh_name cell_id geometry
BaldEagleCr 0 POINT (2083000 370750)
BaldEagleCr 1 POINT (2083250 370750)
BaldEagleCr 2 POINT (2083500 370750)
BaldEagleCr 3 POINT (2083750 370750)
BaldEagleCr 4 POINT (2084000 370750)
In [21]:
# Plot Cell Info
if not cell_info_df.empty:
    display(cell_info_df.head())
else:
    print("No Cell Info found.")

# Plot cell centers
import matplotlib.pyplot as plt

if not cell_info_df.empty:
    fig, ax = plt.subplots(figsize=(12, 8))
    
    # Plot cell centers
    cell_info_df.plot(ax=ax, color='red', markersize=5)
    
    # Set labels and title
    ax.set_xlabel('X Coordinate')
    ax.set_ylabel('Y Coordinate')
    ax.set_title('2D Flow Area Cell Centers')
    
    # Add grid
    ax.grid(True)
    
    # Adjust layout and display
    plt.tight_layout()
    plt.show()
else:
    print("No cell data available for plotting.")
mesh_name cell_id geometry
0 BaldEagleCr 0 POINT (2083000 370750)
1 BaldEagleCr 1 POINT (2083250 370750)
2 BaldEagleCr 2 POINT (2083500 370750)
3 BaldEagleCr 3 POINT (2083750 370750)
4 BaldEagleCr 4 POINT (2084000 370750)
No description has been provided for this image
In [22]:
# Function to find the nearest cell center to a given point
def find_nearest_cell(point, cell_centers_df):
    """
    Find the nearest cell center to a given point.

    Args:
        point (shapely.geometry.Point): The input point.
        cell_centers_df (GeoDataFrame): DataFrame containing cell center points.

    Returns:
        int: The cell_id of the nearest cell.
        float: The distance to the nearest cell center.
    """
    # Calculate distances from the input point to all cell centers
    distances = cell_centers_df.geometry.distance(point)

    # Find the index of the minimum distance
    nearest_index = distances.idxmin()

    # Get the cell_id and distance of the nearest cell
    nearest_cell_id = cell_centers_df.loc[nearest_index, 'cell_id']
    nearest_distance = distances[nearest_index]

    return nearest_cell_id, nearest_distance

# Example usage
print("\nExample: Finding the nearest cell to a given point")

# Create a sample point (you can replace this with any point of interest)
from shapely.geometry import Point
from geopandas import GeoDataFrame

# Get the projection from the geometry file
# projection = HdfUtils.get_projection(hdf_path=geom_hdf_path) # This was done in a previous code cell
if projection:
    print(f"Using projection: {projection}")
else:
    print("No projection information found. Using default CRS.")
    projection = "EPSG:4326"  # Default to WGS84 if no projection is found

# Create the sample point with the correct CRS
sample_point = GeoDataFrame({'geometry': [Point(2083500, 370800)]}, crs=projection)

if not cell_info_df.empty and not sample_point.empty:
    # Ensure the CRS of the sample point matches the cell_info_df
    if sample_point.crs != cell_info_df.crs:
        sample_point = sample_point.to_crs(cell_info_df.crs)
    
    nearest_cell_id, distance = find_nearest_cell(sample_point.geometry.iloc[0], cell_info_df)
    print(f"Nearest cell to point {sample_point.geometry.iloc[0].coords[0]}:")
    print(f"Cell ID: {nearest_cell_id}")
    print(f"Distance: {distance:.2f} units")

    # Visualize the result
    fig, ax = plt.subplots(figsize=(12, 8))
    
    # Plot all cell centers
    cell_info_df.plot(ax=ax, color='blue', markersize=5, alpha=0.5, label='Cell Centers')
    
    # Plot the sample point
    sample_point.plot(ax=ax, color='red', markersize=100, alpha=0.7, label='Sample Point')
    
    # Plot the nearest cell center
    nearest_cell = cell_info_df[cell_info_df['cell_id'] == nearest_cell_id]
    nearest_cell.plot(ax=ax, color='green', markersize=100, alpha=0.7, label='Nearest Cell')
    
    # Set labels and title
    ax.set_xlabel('X Coordinate')
    ax.set_ylabel('Y Coordinate')
    ax.set_title('Nearest Cell to Sample Point')
    
    # Add legend and grid
    ax.legend()
    ax.grid(True)
    
    # Adjust layout and display
    plt.tight_layout()
    plt.show()
else:
    print("Unable to perform nearest cell search due to missing data.")
Example: Finding the nearest cell to a given point
Using projection: PROJCS["NAD_1983_StatePlane_Pennsylvania_North_FIPS_3701_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-77.75],PARAMETER["Standard_Parallel_1",40.88333333333333],PARAMETER["Standard_Parallel_2",41.95],PARAMETER["Latitude_Of_Origin",40.16666666666666],UNIT["Foot_US",0.3048006096012192]]
Nearest cell to point (2083500.0, 370800.0):
Cell ID: 2
Distance: 50.00 units
No description has been provided for this image
In [23]:
# Get geometry structures attributes
print("\nGetting geometry structures attributes")
geom_structures_attrs = HdfStruc.get_geom_structures_attrs(geom_hdf_path, ras_object=bald_eagle)
if geom_structures_attrs:
    print("Geometry structures attributes:")
    for key, value in geom_structures_attrs.items():
        print(f"{key}: {value}")
else:
    print("No geometry structures attributes found.")
2024-11-06 16:14:48,478 - ras_commander.HdfStruc - INFO - Calling get_geom_structures_attrs
2024-11-06 16:14:48,479 - ras_commander.HdfStruc - INFO - Using HDF file: c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D\BaldEagleDamBrk.g09.hdf
2024-11-06 16:14:48,481 - ras_commander.HdfStruc - ERROR - Error reading geometry structures attributes: type object 'HdfUtils' has no attribute 'hdf5_attrs_to_dict'
2024-11-06 16:14:48,482 - ras_commander.HdfStruc - INFO - Finished get_geom_structures_attrs
Getting geometry structures attributes
No geometry structures attributes found.
In [24]:
# TODO: Paths and Functions for each type of structure: 

# Getting geometry structures attributes
# Geometry structures attributes:
# Bridge/Culvert Count: 0
# Connection Count: 4
# Has Bridge Opening (2D): 0
# Inline Structure Count: 0
# Lateral Structure Count: 0
In [25]:
# Example: Extract Boundary Condition Lines and Plot with 2D Flow Area Perimeter Polygons
print("\nExample 7: Extracting Boundary Condition Lines and Plotting with 2D Flow Area Perimeter Polygons")
bc_lines_df = HdfBndry.get_bc_lines(geom_hdf_path, ras_object=bald_eagle)

if not bc_lines_df.empty:
    display(bc_lines_df.head())
else:
    print("No Boundary Condition Lines found.")
2024-11-06 16:14:48,504 - ras_commander.HdfBndry - INFO - Using HDF file: c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D\BaldEagleDamBrk.g09.hdf
2024-11-06 16:14:48,506 - ras_commander.HdfBndry - ERROR - Error reading boundary condition lines: type object 'HdfUtils' has no attribute 'get_polylines_from_parts'
Example 7: Extracting Boundary Condition Lines and Plotting with 2D Flow Area Perimeter Polygons
No Boundary Condition Lines found.
bc_line_id name mesh_name type geometry
0 DSNormalDepth BaldEagleCr External LINESTRING (2082004.235 364024.82, 2083193.546...)
1 DS2NormalD BaldEagleCr External LINESTRING (2084425.804 365392.892, 2084354.64...)
2 Upstream Inflow BaldEagleCr External LINESTRING (1967473.737 290973.629, 1969582.89...)
In [26]:
# Plot Boundary Condition Lines with Perimeter
# Plot if data exists
if not bc_lines_df.empty or not mesh_areas.empty:
    fig, ax = plt.subplots(figsize=(12, 8))
    
    # Plot 2D Flow Area Perimeter Polygons
    if not mesh_areas.empty:
        mesh_areas.plot(ax=ax, edgecolor='black', facecolor='none', alpha=0.7, label='2D Flow Area')
        
        # Add labels for each polygon
        for idx, row in mesh_areas.iterrows():
            centroid = row.geometry.centroid
            label = row.get('Name', f'Area {idx}')
            ax.annotate(label, (centroid.x, centroid.y), ha='center', va='center')
    
    # Plot boundary condition lines
    if not bc_lines_df.empty:
        bc_lines_df.plot(ax=ax, color='red', linewidth=2, label='Boundary Condition Lines')
    
    # Set labels and title
    ax.set_xlabel('Easting')
    ax.set_ylabel('Northing')
    ax.set_title('2D Flow Area Perimeter Polygons and Boundary Condition Lines')
    
    # Add grid and legend
    ax.grid(True)
    ax.legend()
    
    # Adjust layout and display
    plt.tight_layout()
    plt.show()
else:
    print("No data available for plotting.")
C:\Users\billk\AppData\Local\Temp\ipykernel_36876\1355808240.py:27: UserWarning: Legend does not support handles for PatchCollection instances.
See: https://matplotlib.org/stable/tutorials/intermediate/legend_guide.html#implementing-a-custom-legend-handler
  ax.legend()
C:\Users\billk\AppData\Local\Temp\ipykernel_36876\1355808240.py:27: UserWarning: No artists with labels found to put in legend.  Note that artists whose label start with an underscore are ignored when legend() is called with no argument.
  ax.legend()
No description has been provided for this image
In [27]:
# Example: Extract Breaklines and Plot with 2D Flow Area Perimeter Polygons
print("\nExample 8: Extracting Breaklines and Plotting with 2D Flow Area Perimeter Polygons")
breaklines_gdf = HdfBndry.get_breaklines(geom_hdf_path, ras_object=bald_eagle)
if not breaklines_gdf.empty:
    display(breaklines_gdf.head())
else:
    print("No Breaklines found.")
2024-11-06 16:14:48,956 - ras_commander.HdfBndry - INFO - Using HDF file: c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D\BaldEagleDamBrk.g09.hdf
2024-11-06 16:14:48,960 - ras_commander.HdfBndry - ERROR - Error reading breaklines: type object 'HdfUtils' has no attribute 'get_polylines_from_parts'
Example 8: Extracting Breaklines and Plotting with 2D Flow Area Perimeter Polygons
No Breaklines found.

breaklines_gdf:

bl_id Name geometry
0 SayersDam LINESTRING (2002361.246 323707.927, 2002741.35...)
1 Lower LINESTRING (2060356.422 351786.819, 2060316.47...)
2 Middle LINESTRING (2052757.788 348470.547, 2052785.84...)
3 Upper LINESTRING (2045597.199 348412.994, 2045638.91...)
In [28]:
# Plot breaklines and 2D Flow Area Perimeter Polygons if they exist
if not breaklines_gdf.empty or not mesh_areas.empty:
    fig, ax = plt.subplots(figsize=(12, 8))
    
    # Plot 2D Flow Area Perimeter Polygons
    if not mesh_areas.empty:
        mesh_areas.plot(ax=ax, edgecolor='black', facecolor='none', alpha=0.7, label='2D Flow Area')
        
        # Add labels for each polygon
        for idx, row in mesh_areas.iterrows():
            centroid = row.geometry.centroid
            label = row.get('Name', f'Area {idx}')
            ax.annotate(label, (centroid.x, centroid.y), ha='center', va='center')
    
    # Plot breaklines
    if not breaklines_gdf.empty:
        breaklines_gdf.plot(ax=ax, color='blue', linewidth=2, label='Breaklines')
    
    # Set labels and title
    ax.set_xlabel('Easting')
    ax.set_ylabel('Northing')
    ax.set_title('2D Flow Area Perimeter Polygons and Breaklines')
    
    # Add grid and legend
    ax.grid(True)
    ax.legend()
    
    # Adjust layout and display
    plt.tight_layout()
    plt.show()
else:
    print("No data available for plotting.")
C:\Users\billk\AppData\Local\Temp\ipykernel_36876\3836499436.py:26: UserWarning: Legend does not support handles for PatchCollection instances.
See: https://matplotlib.org/stable/tutorials/intermediate/legend_guide.html#implementing-a-custom-legend-handler
  ax.legend()
C:\Users\billk\AppData\Local\Temp\ipykernel_36876\3836499436.py:26: UserWarning: No artists with labels found to put in legend.  Note that artists whose label start with an underscore are ignored when legend() is called with no argument.
  ax.legend()
No description has been provided for this image
In [29]:
# INSTEAD OF hdf_input, USE plan_hdf_path or geom_hdf_path as appropriate 
In [30]:
# Example: Get structures
structures_gdf = HdfStruc.get_structures(geom_hdf_path, ras_object=bald_eagle)
print("Structures:")
if not structures_gdf.empty:
    display(structures_gdf.head())
else:
    print("No structures found in the geometry file.")
2024-11-06 16:14:49,370 - ras_commander.HdfStruc - INFO - Calling get_structures
2024-11-06 16:14:49,372 - ras_commander.HdfStruc - INFO - Using HDF file: c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D\BaldEagleDamBrk.g09.hdf
2024-11-06 16:14:49,374 - ras_commander.HdfBase - ERROR - Error getting attributes from Geometry/Structures: type object 'HdfUtils' has no attribute 'hdf5_attrs_to_dict'
2024-11-06 16:14:49,400 - ras_commander.HdfBase - INFO - Using existing HDF file: c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D\BaldEagleDamBrk.g09.hdf
2024-11-06 16:14:49,462 - ras_commander.HdfStruc - INFO - Successfully extracted structures GeoDataFrame.
2024-11-06 16:14:49,463 - ras_commander.HdfStruc - INFO - Successfully extracted structures GeoDataFrame with attributes.
2024-11-06 16:14:49,464 - ras_commander.HdfStruc - INFO - Finished get_structures
Structures:
Type Mode River Reach RS Connection Groupname US Type US River US Reach ... US XS Mann (Count) US BR Mann (Index) US BR Mann (Count) DS XS Mann (Index) DS XS Mann (Count) DS BR Mann (Index) DS BR Mann (Count) RC (Index) RC (Count) Profile_Data
0 Connection Weir/Gate/Culverts Sayers Dam BaldEagleCr, Sayers Dam 2D ... 0 0 0 0 0 0 0 0 0 [{'Station': 0.0, 'Elevation': 683.0}, {'Stati...

1 rows × 162 columns

structures_gdf:

Type Mode River Reach RS Connection Groupname US Type US River US Reach ... US XS Mann (Count) US BR Mann (Index) US BR Mann (Count) DS XS Mann (Index) DS XS Mann (Count) DS BR Mann (Index) DS BR Mann (Count) RC (Index) RC (Count) Profile_Data
Connection Weir/Gate/Culverts Sayers Dam BaldEagleCr, Sayers Dam 2D ... 0 0 0 0 0 0 0 0 0 [{'Station': 0.0, 'Elevation': 683.0}, {'Stati...
In [31]:
# Example: Get boundary condition lines
ref_lines_gdf = HdfBndry.get_bc_lines(geom_hdf_path)
print("\nBoundary Condition Lines:")
if not ref_lines_gdf.empty:
    display(ref_lines_gdf.head())
else:
    print("No boundary condition lines found in the geometry file.")
2024-11-06 16:14:49,495 - ras_commander.HdfBndry - INFO - Using HDF file: c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D\BaldEagleDamBrk.g09.hdf
2024-11-06 16:14:49,499 - ras_commander.HdfBndry - ERROR - Error reading boundary condition lines: type object 'HdfUtils' has no attribute 'get_polylines_from_parts'
Boundary Condition Lines:
No boundary condition lines found in the geometry file.
In [32]:
# Example: Get reference points
ref_points_gdf = HdfBndry.get_reference_points(geom_hdf_path)
print("\nReference Points:")
if not ref_points_gdf.empty:
    display(ref_points_gdf.head())
else:
    print("No reference points found in the geometry file.")
2024-11-06 16:14:49,513 - ras_commander.HdfBndry - INFO - Using HDF file: c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D\BaldEagleDamBrk.g09.hdf
Reference Points:
No reference points found in the geometry file.

Extract Breakline as Reference Line¶

We can't use a profile line, because the mesh orientation may be quite different than the direction of flow.

Instead, use a breakline - the one named "SayersDam" should work

We can find the information specific to faces:

Extract Composite Results for 2D at Profile Lines to simulate Reference Lines¶

In [33]:
# Example: Extract Refinement Regions
print("\nExample: Extracting Refinement Regions")

# Make sure to pass the bald_eagle object as the ras_object parameter
refinement_regions_df = HdfBndry.get_refinement_regions(geom_hdf_path, ras_object=bald_eagle)

if not refinement_regions_df.empty:
    print("Refinement Regions DataFrame:")
    display(refinement_regions_df.head())
    
    # Plot refinement regions
    fig, ax = plt.subplots(figsize=(12, 8))
    refinement_regions_df.plot(ax=ax, column='CellSize', legend=True, 
                               legend_kwds={'label': 'Cell Size', 'orientation': 'horizontal'},
                               cmap='viridis')
    ax.set_title('2D Mesh Area Refinement Regions')
    ax.set_xlabel('Easting')
    ax.set_ylabel('Northing')
    plt.tight_layout()
    plt.show()
else:
    print("No refinement regions found in the geometry file.")

# Example: Analyze Refinement Regions
if not refinement_regions_df.empty:
    print("\nRefinement Regions Analysis:")
    print(f"Total number of refinement regions: {len(refinement_regions_df)}")
    print("\nCell Size Statistics:")
    print(refinement_regions_df['CellSize'].describe())
    
    # Group by Shape Type
    shape_type_counts = refinement_regions_df['ShapeType'].value_counts()
    print("\nRefinement Region Shape Types:")
    print(shape_type_counts)
    
    # Plot Shape Type distribution
    plt.figure(figsize=(10, 6))
    shape_type_counts.plot(kind='bar')
    plt.title('Distribution of Refinement Region Shape Types')
    plt.xlabel('Shape Type')
    plt.ylabel('Count')
    plt.xticks(rotation=45)
    plt.tight_layout()
    plt.show()
2024-11-06 16:14:49,533 - ras_commander.HdfBndry - INFO - Using HDF file: c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D\BaldEagleDamBrk.g09.hdf
Example: Extracting Refinement Regions
No refinement regions found in the geometry file.
In [34]:
# Extract Compute Messages as String
print("Extracting Compute Messages")

import h5py
import numpy as np

def extract_string_from_hdf(results_hdf_filename: str, hdf_path: str) -> str:
    """
    Extract string from HDF object at a given path

    Parameters
    ----------
    results_hdf_filename : str
        Name of the HDF file
    hdf_path : str
        Path of the object in the HDF file

    Returns
    -------
    str
        Extracted string from the specified HDF object
    """
    with h5py.File(results_hdf_filename, 'r') as hdf_file:
        try:
            hdf_object = hdf_file[hdf_path]
            if isinstance(hdf_object, h5py.Group):
                return f"Group: {hdf_path}\nContents: {list(hdf_object.keys())}"
            elif isinstance(hdf_object, h5py.Dataset):
                data = hdf_object[()]
                if isinstance(data, bytes):
                    return data.decode('utf-8')
                elif isinstance(data, np.ndarray) and data.dtype.kind == 'S':
                    return [v.decode('utf-8') for v in data]
                else:
                    return str(data)
            else:
                return f"Unsupported object type: {type(hdf_object)}"
        except KeyError:
            return f"Path not found: {hdf_path}"

try:
    results_summary_string = extract_string_from_hdf(plan_hdf_path, '/Results/Summary/Compute Messages (text)')
    print("Compute Messages:")
    
    # Parse and print the compute messages in a more visually friendly way
    messages = results_summary_string[0].split('\r\n')
    
    for message in messages:
        if message.strip():  # Skip empty lines
            if ':' in message:
                key, value = message.split(':', 1)
                print(f"{key.strip():40} : {value.strip()}")
            else:
                print(f"\n{message.strip()}")
    
    # Print computation summary in a table format
    print("\nComputation Summary:")
    print("-" * 50)
    print(f"{'Computation Task':<30} {'Time':<20}")
    print("-" * 50)
    for line in messages:
        if 'Computation Task' in line:
            task, time = line.split('\t')
            print(f"{task:<30} {time:<20}")
    
    print("\nComputation Speed:")
    print("-" * 50)
    print(f"{'Task':<30} {'Simulation/Runtime':<20}")
    print("-" * 50)
    for line in messages:
        if 'Computation Speed' in line:
            task, speed = line.split('\t')
            print(f"{task:<30} {speed:<20}")

except Exception as e:
    print(f"Error extracting compute messages: {str(e)}")
    print("\nNote: If 'Results/Summary Output' is not in the file structure, it might indicate that the simulation didn't complete successfully or the results weren't saved properly.")

 
Extracting Compute Messages
Compute Messages:
Plan                                     : 'Gridded Precip - Infiltration' (BaldEagleDamBrk.p06)
Simulation started at                    : 06Nov2024 02:15:38 PM

Writing Plan GIS Data...

Completed Writing Plan GIS Data

Writing Geometry...
Computing 2D Flow Area 'BaldEagleCr' tables : Property tables do not exist.

2D Flow Area 'BaldEagleCr' tables complete 23.20 sec

Completed Writing Geometry

Writing Event Conditions ...

Processing Precipitation data...

(assumes geometry data is geo-referenced)

Finished Processing Precipitation data (3.555s)

Completed Writing Event Condition Data

Geometric Preprocessor HEC-RAS 6.6 September 2024

Finished Processing Geometry

Performing Unsteady Flow Simulation  HEC-RAS 6.6 September 2024
Unsteady Input Summary                   : 

2D Unsteady Diffusion Wave Equation Set (fastest)
2D number of Solver Cores                : 6

Maximum adaptive timestep = 40.0    Minimum adaptive timestep = 20.0

Initial adaptive timestep = 20.0
09SEP2018 00                             : 01:20       timestep =            40             (sec)
12SEP2018 21                             : 12:00       timestep =            20             (sec)
Overall Volume Accounting Error in Acre Feet : 0.4692
Overall Volume Accounting Error as percentage : 0.000331

Please review "Computational Log File" output for volume accounting details

Writing Results to DSS

Finished Unsteady Flow Simulation

1D Post Process Skipped (simulation is all 2D)

Computations Summary
Computation Task	Time(hh                 : mm:ss)

Completing Geometry, Flow and Plan	      33

Preprocessing Geometry	<1
Unsteady Flow Computations	    6         : 39
Complete Process	    7                   : 13

Computation Speed	Simulation/Runtime

Unsteady Flow Computations	1080x

Complete Process	996x

Computation Summary:
--------------------------------------------------
Computation Task               Time                
--------------------------------------------------
Computation Task               Time(hh:mm:ss)      

Computation Speed:
--------------------------------------------------
Task                           Simulation/Runtime  
--------------------------------------------------
Computation Speed              Simulation/Runtime  
In [35]:
# Advanced Compute Messages Example - TODO: Move this function into a class of the library 
import pandas as pd
import re
import matplotlib.pyplot as plt
import geopandas as gpd
import logging

# Configure logging
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(name)s - %(levelname)s - %(message)s')

def parse_2d_compute_messages(compute_messages):
    """
    Parse 2D compute messages to extract data lines, clean the data, 
    and retrieve top 20 cells with the highest error.

    Parameters:
        compute_messages (list or str): The raw compute messages.

    Returns:
        tuple: A tuple containing the parsed compute messages string and the main DataFrame.
    """
    try:
        # Handle both list and string inputs
        if isinstance(compute_messages, list):
            compute_messages = '\n'.join(compute_messages)
        elif not isinstance(compute_messages, str):
            logging.error(f"Unexpected type for compute_messages: {type(compute_messages)}")
            return "", pd.DataFrame()

        # Split the message into lines
        lines = compute_messages.split('\n')
        logging.info("Successfully split compute messages into lines.")
        
        # Initialize lists to store parsed data
        data_lines = []
        header_lines = []
        footer_lines = []
        
        # Regular expression to match timestamp lines
        timestamp_pattern = re.compile(r'^\d{2}[A-Z]{3}\d{4}\s+\d{2}:\d{2}:\d{2}')
        logging.debug("Compiled timestamp regular expression.")
        
        data_started = False
        for line in lines:
            stripped_line = line.strip()
            if timestamp_pattern.match(stripped_line):
                data_started = True
                # Split the line and add to data_lines
                parts = stripped_line.split()
                if len(parts) >= 8:  # Ensure we have all expected columns
                    # Combine Date and Time into 'Date and Time'
                    date_time = f"{parts[0]} {parts[1]}"
                    location = parts[2]
                    cell_type = f"{parts[3]} {parts[4]}"
                    cell_number = parts[5]
                    wsel = parts[6]
                    error = parts[7]
                    iterations = parts[8] if len(parts) > 8 else None
                    data_lines.append([date_time, location, cell_type, cell_number, wsel, error, iterations])
                    logging.debug(f"Parsed data line: {data_lines[-1]}")
                else:
                    logging.warning(f"Line skipped due to insufficient parts: {stripped_line}")
            elif not data_started:
                header_lines.append(stripped_line)
            elif data_started and not stripped_line:
                data_started = False
            elif not data_started:
                footer_lines.append(stripped_line)
        
        # Create DataFrame from data lines
        df = pd.DataFrame(
            data_lines, 
            columns=['Date and Time', 'Location', 'Cell Type', 'Cell Number', 'WSEL', 'ERROR', 'ITERATIONS']
        )
        logging.info("Created DataFrame from parsed data lines.")
        
        # Clean and convert columns to appropriate types
        df['Cell Number'] = (
            pd.to_numeric(df['Cell Number'].replace('#', pd.NA), errors='coerce')
            .fillna(-1)
            .astype('Int64')
        )
        df['WSEL'] = pd.to_numeric(df['WSEL'], errors='coerce')
        df['ERROR'] = pd.to_numeric(df['ERROR'], errors='coerce')
        df['ITERATIONS'] = pd.to_numeric(df['ITERATIONS'], errors='coerce').astype('Int64')
        logging.info("Converted DataFrame columns to appropriate types.")
        
        # Get top 20 cells with highest error
        top_20_cells = (
            df.sort_values('ERROR', ascending=False)
            .drop_duplicates('Cell Number')
            .head(20)
        )
        
        # Construct the reordered message
        reordered_message = '\n'.join(header_lines + 
                                      ['\nTop 20 Cells with Highest Error:'] + 
                                      [' '.join(map(str, row)) for row in top_20_cells.values] + 
                                      ['\n'] + footer_lines)
        
        logging.info("Reordered compute messages.")
        
        return reordered_message, df
    except Exception as e:
        logging.error(f"Error parsing compute messages: {e}")
        return "", pd.DataFrame()

# Use the function to parse compute messages
parsed_messages, df = parse_2d_compute_messages(results_summary_string)

print(parsed_messages)
print(df)

# Get top 20 cells with highest error
if not df.empty and 'ERROR' in df.columns:
    top_20_cells = (
        df.sort_values('ERROR', ascending=False)
        .drop_duplicates('Cell Number')
        .head(20)
    )
else:
    logging.warning("Unable to get top 20 cells with highest error. DataFrame is empty or 'ERROR' column is missing.")
    top_20_cells = pd.DataFrame()

# Example: Get 2D Flow Area Perimeter Polygons (mesh_areas)
print("\nExample: Extracting 2D Flow Area Perimeter Polygons")
mesh_areas = HdfMesh.get_mesh_areas(geom_hdf_path, ras_object=bald_eagle)

print("\n2D Flow Area Groups and Perimeters:")
if not mesh_areas.empty:
    print("Available columns:", mesh_areas.columns.tolist())
    
    # Display the first few rows of the mesh_areas DataFrame
    print("\nFirst few rows of mesh_areas DataFrame:")
    display(mesh_areas.head())
else:
    print("No 2D Flow Area groups found in the HDF file.")

# Use the previously extracted cell_polygons_df
print("\nTop 20 Cell Polygons:")
if 'cell_polygons_df' in locals() and not cell_polygons_df.empty and not top_20_cells.empty:
    # Get the cell numbers from top_20_cells
    top_20_cell_numbers = top_20_cells['Cell Number'].tolist()
    
    # Filter cell_polygons_df to only include top 20 cells
    top_20_cell_polygons = cell_polygons_df[cell_polygons_df['cell_id'].isin(top_20_cell_numbers)]
    
    display(top_20_cell_polygons)

    # Plot top 20 cell polygons and mesh areas
    fig, ax = plt.subplots(figsize=(12, 8))
    
    # Plot mesh areas
    mesh_areas.plot(ax=ax, edgecolor='red', facecolor='none', alpha=0.5, label='Mesh Areas')
    
    # Plot top 20 cell polygons
    top_20_cell_polygons.plot(ax=ax, edgecolor='blue', facecolor='none', alpha=0.7, label='Top 20 Error Cells')
    
    # Set labels and title
    ax.set_xlabel('X Coordinate')
    ax.set_ylabel('Y Coordinate')
    ax.set_title('2D Flow Area Perimeters and Top 20 Cell Polygons')
    
    # Add legend
    ax.legend()
    
    # Add grid
    ax.grid(True)
    
    # Adjust layout and display
    plt.tight_layout()
    plt.show()
else:
    print("No Cell Polygons found or no top 20 cells with highest error available.")
    print("Unable to plot cell polygons.")
2024-11-06 16:14:49,587 - root - INFO - Successfully split compute messages into lines.
2024-11-06 16:14:49,588 - root - WARNING - Line skipped due to insufficient parts: 09SEP2018 00:01:20       timestep =            40             (sec)
2024-11-06 16:14:49,589 - root - WARNING - Line skipped due to insufficient parts: 12SEP2018 21:12:00       timestep =            20             (sec)
2024-11-06 16:14:49,592 - root - INFO - Created DataFrame from parsed data lines.
2024-11-06 16:14:49,595 - root - INFO - Converted DataFrame columns to appropriate types.
2024-11-06 16:14:49,598 - root - INFO - Reordered compute messages.
2024-11-06 16:14:49,600 - root - WARNING - Unable to get top 20 cells with highest error. DataFrame is empty or 'ERROR' column is missing.
2024-11-06 16:14:49,603 - ras_commander.HdfMesh - INFO - Using HDF file: c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D\BaldEagleDamBrk.g09.hdf
2024-11-06 16:14:49,605 - ras_commander.HdfMesh - INFO - Using existing HDF file: c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D\BaldEagleDamBrk.g09.hdf
2024-11-06 16:14:49,609 - ras_commander.HdfBase - INFO - Using HDF file: c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D\BaldEagleDamBrk.g09.hdf
Plan: 'Gridded Precip - Infiltration' (BaldEagleDamBrk.p06)
Simulation started at: 06Nov2024 02:15:38 PM

Writing Plan GIS Data...
Completed Writing Plan GIS Data
Writing Geometry...
Computing 2D Flow Area 'BaldEagleCr' tables: Property tables do not exist.
2D Flow Area 'BaldEagleCr' tables complete 23.20 sec
Completed Writing Geometry
Writing Event Conditions ...

Processing Precipitation data...
(assumes geometry data is geo-referenced)
Finished Processing Precipitation data (3.555s)
Completed Writing Event Condition Data


Geometric Preprocessor HEC-RAS 6.6 September 2024


Finished Processing Geometry


Performing Unsteady Flow Simulation  HEC-RAS 6.6 September 2024


Unsteady Input Summary:
2D Unsteady Diffusion Wave Equation Set (fastest)
2D number of Solver Cores:    6

Maximum adaptive timestep = 40.0    Minimum adaptive timestep = 20.0
Initial adaptive timestep = 20.0

Overall Volume Accounting Error in Acre Feet:            0.4692
Overall Volume Accounting Error as percentage:          0.000331
Please review "Computational Log File" output for volume accounting details

Writing Results to DSS

Finished Unsteady Flow Simulation

1D Post Process Skipped (simulation is all 2D)

Computations Summary

Computation Task	Time(hh:mm:ss)
Completing Geometry, Flow and Plan	      33
Preprocessing Geometry	<1
Unsteady Flow Computations	    6:39
Complete Process	    7:13

Computation Speed	Simulation/Runtime
Unsteady Flow Computations	1080x
Complete Process	996x


Top 20 Cells with Highest Error:


Empty DataFrame
Columns: [Date and Time, Location, Cell Type, Cell Number, WSEL, ERROR, ITERATIONS]
Index: []

Example: Extracting 2D Flow Area Perimeter Polygons

2D Flow Area Groups and Perimeters:
Available columns: ['mesh_name', 'geometry']

First few rows of mesh_areas DataFrame:
mesh_name geometry
0 BaldEagleCr POLYGON ((2009315.708 321138.385, 2009371.858 ...
Top 20 Cell Polygons:
No Cell Polygons found or no top 20 cells with highest error available.
Unable to plot cell polygons.
In [36]:
# Exploratory Example for Debugging or New Features: List all paths, groups, and attributes under "/Results/Unsteady/Summary/Volume Accounting"
HdfBase.get_dataset_info(plan_hdf_path, "/Results/Unsteady/Summary/Volume Accounting")
2024-11-06 16:14:49,664 - ras_commander.HdfBase - INFO - Using HDF file: c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D\BaldEagleDamBrk.p06.hdf
Exploring group: /Results/Unsteady/Summary/Volume Accounting


    Group: /Results/Unsteady/Summary/Volume Accounting/Volume Accounting 1D
    Attributes for /Results/Unsteady/Summary/Volume Accounting/Volume Accounting 1D:
        Diversions: -0.0
        Flow DS Out: 0.0
        Flow US In: 0.0
        Groundwater: -0.0
        Hydro Lat: 0.0
        Hydro SA: 0.0
        Precip Excess (acre feet): 0.0
        Precip Excess (inches): 0.0
        Reach Final 1D: 0.0
        Reach Start 1D: 0.0
        SA Final: 0.0
        SA Starting: 0.0
        Vol Accounting in: b'Acre Feet'

    Group: /Results/Unsteady/Summary/Volume Accounting/Volume Accounting 2D
    Attributes for /Results/Unsteady/Summary/Volume Accounting/Volume Accounting 2D:
        Vol Accounting in: b'Acre Feet'
        Group: /Results/Unsteady/Summary/Volume Accounting/Volume Accounting 2D/BaldEagleCr
    Attributes for /Results/Unsteady/Summary/Volume Accounting/Volume Accounting 2D/BaldEagleCr:
        Cum Inflow: 141685.0
        Cum Outflow: 17240.263671875
        Error: 0.46921461820602417
        Error Percent: 0.0003311674518045038
        Precip Excess (acre feet): 3756.872802734375
        Precip Excess (inches): 1.707614779472351
        Vol Accounting in: b'Acre Feet'
        Vol Ending: 124445.203125
        Vol Starting: 0.0
In [37]:
# Example 12: Extract Plan Parameters and Volume Accounting
print("\nExample 12: Extracting Plan Parameters and Volume Accounting Data")

# Extract plan parameters
plan_parameters_df = HdfPlan.get_plan_parameters(plan_hdf_path)

# Extract volume accounting data
volume_accounting_df = HdfResultsPlan.get_volume_accounting(plan_hdf_path)

print("\nPlan Parameters DataFrame:")
display(plan_parameters_df)

print("\nVolume Accounting DataFrame:")
display(volume_accounting_df)
2024-11-06 16:14:49,686 - ras_commander.HdfPlan - INFO - Calling get_plan_parameters
Example 12: Extracting Plan Parameters and Volume Accounting Data
2024-11-06 16:14:49,688 - ras_commander.HdfPlan - INFO - Using HDF file: c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D\BaldEagleDamBrk.p06.hdf
2024-11-06 16:14:49,698 - ras_commander.HdfPlan - INFO - Finished get_plan_parameters
2024-11-06 16:14:49,699 - ras_commander.HdfResultsPlan - INFO - Calling get_volume_accounting
2024-11-06 16:14:49,700 - ras_commander.HdfResultsPlan - INFO - Using HDF file: c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D\BaldEagleDamBrk.p06.hdf
2024-11-06 16:14:49,705 - ras_commander.HdfResultsPlan - INFO - Finished get_volume_accounting
Plan Parameters DataFrame:
{'1D Cores': 0,
 '1D Flow Tolerance': nan,
 '1D Maximum Iterations': 20,
 '1D Maximum Iterations Without Improvement': 0,
 '1D Maximum Water Surface Error To Abort': 100.0,
 '1D Methodology': 'Finite Difference',
 '1D Storage Area Elevation Tolerance': 0.02,
 '1D Theta': 1.0,
 '1D Theta Warmup': 1.0,
 '1D Water Surface Elevation Tolerance': 0.02,
 '1D-2D Flow Tolerance': 1.0,
 '1D-2D Gate Flow Submergence Decay Exponent': 1.0,
 '1D-2D IS Stablity Factor': 1.0,
 '1D-2D LS Stablity Factor': 2.0,
 '1D-2D Maximum Iterations': 0,
 '1D-2D Maximum Number of Time Slices': 20,
 '1D-2D Minimum Flow Tolerance': nan,
 '1D-2D Minimum Time Step for Slicing(hours)': 0.0,
 '1D-2D Number of Warmup Steps': 0,
 '1D-2D Warmup Time Step (hours)': 0.0,
 '1D-2D Water Surface Tolerance': 0.02,
 '1D-2D Weir Flow Submergence Decay Exponent': 1.0,
 '2D Advanced Convergence': array([0], dtype=uint8),
 '2D Boundary Condition Ramp Up Fraction': array([0.5], dtype=float32),
 '2D Boundary Condition Volume Check': array([b'False'], dtype='|S5'),
 '2D Cores (per mesh)': array([12]),
 '2D Coriolis': False,
 '2D Equation Set': array([b'Diffusion Wave'], dtype='|S14'),
 '2D Initial Conditions Ramp Up Time (hrs)': array([0.], dtype=float32),
 '2D Latitude for Coriolis': array([3.4028235e+38], dtype=float32),
 '2D Longitudinal Mixing Coefficient': array([0.], dtype=float32),
 '2D Matrix Solver': array([b'Pardiso'], dtype='|S7'),
 '2D Maximum Iterations': array([20]),
 '2D Names': array([b'BaldEagleCr'], dtype='|S11'),
 '2D Number of Time Slices': array([1]),
 '2D Only': True,
 '2D Smagorinsky Mixing Coefficient': array([0.], dtype=float32),
 '2D Theta': array([1.], dtype=float32),
 '2D Theta Warmup': array([1.], dtype=float32),
 '2D Transverse Mixing Coefficient': array([0.], dtype=float32),
 '2D Turbulence Formulation': array([b'None'], dtype='|S4'),
 '2D Volume Tolerance': array([0.01], dtype=float32),
 '2D WS Max Tolerance': array([0.], dtype=float32),
 '2D WS RMS Tolerance': array([0.], dtype=float32),
 '2D WS Stalling Tolerance': array([0.], dtype=float32),
 '2D Water Surface Tolerance': array([0.01], dtype=float32),
 'Friction Slope Average Method (BR)': 'Average Conveyance',
 'Friction Slope Average Method (XS)': 'Average Friction Slope',
 'Gravity': 32.174,
 'HDF Additional Output Variables': array([b'Cell Velocity', b'Face Eddy Viscosity', b'Face Flow',
        b'Face Water Surface', b'Face Shear Stress'], dtype='|S19'),
 'HDF Chunk Size': 1.0,
 'HDF Compression': 1,
 'HDF Fixed Rows': 1,
 'HDF Flush Buffer': False,
 'HDF Spatial Parts': 1,
 'HDF Use Max Rows': 0,
 'HDF Write Time Slices': False,
 'HDF Write Warmup': False,
 'Pardiso Solver': False}
Volume Accounting DataFrame:
Error Error Percent Precipitation Excess (acre feet) Precipitation Excess (inches) Total Boundary Flux of Water In Total Boundary Flux of Water Out Vol Accounting in Volume Ending Volume Starting
0 0.469215 0.000331 3756.872803 1.707615 141685.0 17240.263672 b'Acre Feet' 124445.203125 0.0

RasPlanHdf Class Functions¶


In [38]:
# Example: Get plan start time
start_time = HdfPlan.get_plan_start_time(plan_hdf_path)
print(f"Simulation start time: {start_time}")
2024-11-06 16:14:49,738 - ras_commander.HdfPlan - INFO - Calling get_plan_start_time
2024-11-06 16:14:49,740 - ras_commander.HdfPlan - INFO - Using HDF file: c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D\BaldEagleDamBrk.p06.hdf
2024-11-06 16:14:49,742 - ras_commander.HdfPlan - INFO - Finished get_plan_start_time
Simulation start time: 2018-09-09 00:00:00

Simulation start time: 2018-09-09 00:00:00

In [39]:
# Example: Get plan end time
end_time = HdfPlan.get_plan_end_time(plan_hdf_path)
print(f"Simulation end time: {end_time}")
2024-11-06 16:14:49,754 - ras_commander.HdfPlan - INFO - Calling get_plan_end_time
2024-11-06 16:14:49,756 - ras_commander.HdfPlan - INFO - Using HDF file: c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D\BaldEagleDamBrk.p06.hdf
2024-11-06 16:14:49,758 - ras_commander.HdfPlan - INFO - Finished get_plan_end_time
Simulation end time: 2018-09-14 00:00:00

Simulation end time: 2018-09-14 00:00:00

In [40]:
# Example: Get maximum iteration count for mesh cells
max_iter_df = HdfResultsMesh.get_mesh_max_iter(plan_hdf_path)
print("\nMesh Max Iterations:")
print(max_iter_df.attrs)
display(max_iter_df.head())
2024-11-06 16:14:49,774 - ras_commander.HdfResultsMesh - INFO - Calling get_mesh_max_iter
2024-11-06 16:14:49,776 - ras_commander.HdfResultsMesh - INFO - Using HDF file: c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D\BaldEagleDamBrk.p06.hdf
2024-11-06 16:14:49,778 - ras_commander.HdfResultsMesh - INFO - Calling get_mesh_summary_output
2024-11-06 16:14:49,780 - ras_commander.HdfResultsMesh - INFO - Processing summary output for variable: Cell Last Iteration
2024-11-06 16:14:49,790 - ras_commander.HdfMesh - INFO - Using HDF file: c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D\BaldEagleDamBrk.p06.hdf
2024-11-06 16:14:49,792 - ras_commander.HdfMesh - INFO - Using existing HDF file: c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D\BaldEagleDamBrk.p06.hdf
2024-11-06 16:14:50,175 - ras_commander.HdfBase - INFO - Using existing HDF file: c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D\BaldEagleDamBrk.p06.hdf
2024-11-06 16:14:50,294 - ras_commander.HdfResultsMesh - INFO - Processed 19597 rows of summary output data
2024-11-06 16:14:50,295 - ras_commander.HdfResultsMesh - INFO - Finished get_mesh_summary_output
2024-11-06 16:14:50,297 - ras_commander.HdfResultsMesh - INFO - Finished get_mesh_max_iter
Mesh Max Iterations:
{'mesh_name': 'BaldEagleCr', 'Cell': 'Number of times given cell is last cell to converge or it went to max iterations'}
mesh_name cell_id cell_last_iteration geometry
0 BaldEagleCr 0 0 POINT (2083000 370750)
1 BaldEagleCr 1 0 POINT (2083250 370750)
2 BaldEagleCr 2 0 POINT (2083500 370750)
3 BaldEagleCr 3 2 POINT (2083750 370750)
4 BaldEagleCr 4 0 POINT (2084000 370750)

max_iter_df:

mesh_name cell_id cell_last_iteration geometry
BaldEagleCr 0 0 POINT (2083000 370750)
BaldEagleCr 1 0 POINT (2083250 370750)
BaldEagleCr 2 0 POINT (2083500 370750)
BaldEagleCr 3 2 POINT (2083750 370750)
BaldEagleCr 4 0 POINT (2084000 370750)
In [41]:
# Get maximum iteration count for mesh cells
from ras_commander.HdfResultsMesh import HdfResultsMesh

max_iter_gdf = HdfResultsMesh.get_mesh_max_iter(plan_hdf_path)

print("max_iter_df")
print(max_iter_df)
2024-11-06 16:14:50,320 - ras_commander.HdfResultsMesh - INFO - Calling get_mesh_max_iter
2024-11-06 16:14:50,321 - ras_commander.HdfResultsMesh - INFO - Using HDF file: c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D\BaldEagleDamBrk.p06.hdf
2024-11-06 16:14:50,323 - ras_commander.HdfResultsMesh - INFO - Calling get_mesh_summary_output
2024-11-06 16:14:50,324 - ras_commander.HdfResultsMesh - INFO - Processing summary output for variable: Cell Last Iteration
2024-11-06 16:14:50,332 - ras_commander.HdfMesh - INFO - Using HDF file: c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D\BaldEagleDamBrk.p06.hdf
2024-11-06 16:14:50,334 - ras_commander.HdfMesh - INFO - Using existing HDF file: c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D\BaldEagleDamBrk.p06.hdf
2024-11-06 16:14:50,772 - ras_commander.HdfBase - INFO - Using existing HDF file: c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D\BaldEagleDamBrk.p06.hdf
2024-11-06 16:14:50,866 - ras_commander.HdfResultsMesh - INFO - Processed 19597 rows of summary output data
2024-11-06 16:14:50,868 - ras_commander.HdfResultsMesh - INFO - Finished get_mesh_summary_output
2024-11-06 16:14:50,869 - ras_commander.HdfResultsMesh - INFO - Finished get_mesh_max_iter
max_iter_df
         mesh_name  cell_id  cell_last_iteration  \
0      BaldEagleCr        0                    0   
1      BaldEagleCr        1                    0   
2      BaldEagleCr        2                    0   
3      BaldEagleCr        3                    2   
4      BaldEagleCr        4                    0   
...            ...      ...                  ...   
19592  BaldEagleCr    19592                    0   
19593  BaldEagleCr    19593                    0   
19594  BaldEagleCr    19594                    0   
19595  BaldEagleCr    19595                    0   
19596  BaldEagleCr    19596                    0   

                             geometry  
0              POINT (2083000 370750)  
1              POINT (2083250 370750)  
2              POINT (2083500 370750)  
3              POINT (2083750 370750)  
4              POINT (2084000 370750)  
...                               ...  
19592  POINT (1978423.032 300718.897)  
19593  POINT (1973389.375 297311.928)  
19594   POINT (1968834.79 295808.861)  
19595  POINT (1966130.942 291879.395)  
19596   POINT (1969660.046 289673.23)  

[19597 rows x 4 columns]

mesh_max_iter_df:

mesh_name cell_id cell_last_iteration geometry
BaldEagleCr 0 0 POINT (2083000 370750)
... ... ... ...
BaldEagleCr 19592 0 POINT (1978423.032 300718.897)

[19597 rows x 4 columns]

In [42]:
# Get cell coordinates 
cell_coords = HdfMesh.get_mesh_cell_points(plan_hdf_path)
display(cell_coords)
2024-11-06 16:14:50,883 - ras_commander.HdfMesh - INFO - Using HDF file: c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D\BaldEagleDamBrk.p06.hdf
2024-11-06 16:14:50,885 - ras_commander.HdfMesh - INFO - Using existing HDF file: c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D\BaldEagleDamBrk.p06.hdf
2024-11-06 16:14:51,188 - ras_commander.HdfBase - INFO - Using existing HDF file: c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D\BaldEagleDamBrk.p06.hdf
mesh_name cell_id geometry
0 BaldEagleCr 0 POINT (2083000 370750)
1 BaldEagleCr 1 POINT (2083250 370750)
2 BaldEagleCr 2 POINT (2083500 370750)
3 BaldEagleCr 3 POINT (2083750 370750)
4 BaldEagleCr 4 POINT (2084000 370750)
... ... ... ...
19592 BaldEagleCr 19592 POINT (1978423.032 300718.897)
19593 BaldEagleCr 19593 POINT (1973389.375 297311.928)
19594 BaldEagleCr 19594 POINT (1968834.79 295808.861)
19595 BaldEagleCr 19595 POINT (1966130.942 291879.395)
19596 BaldEagleCr 19596 POINT (1969660.046 289673.23)

19597 rows × 3 columns

In [43]:
# Plot Mesh Max Iterations

# Extract x and y coordinates from the geometry column
max_iter_df['x'] = max_iter_df['geometry'].apply(lambda geom: geom.x if geom is not None else None)
max_iter_df['y'] = max_iter_df['geometry'].apply(lambda geom: geom.y if geom is not None else None)

# Remove rows with None coordinates
max_iter_df = max_iter_df.dropna(subset=['x', 'y'])

# Create the plot
fig, ax = plt.subplots(figsize=(12, 8))
scatter = ax.scatter(max_iter_df['x'], max_iter_df['y'], 
                     c=max_iter_df['cell_last_iteration'], 
                     cmap='viridis', 
                     s=1)

# Customize the plot
ax.set_title('Max Iterations per Cell')
ax.set_xlabel('X Coordinate')
ax.set_ylabel('Y Coordinate')
plt.colorbar(scatter, label='Max Iterations')

# Show the plot
plt.show()

# Print the first few rows of the dataframe for verification
print("\nFirst few rows of the dataframe:")
display(max_iter_df[['mesh_name', 'cell_id', 'geometry']].head())
No description has been provided for this image
First few rows of the dataframe:
mesh_name cell_id geometry
0 BaldEagleCr 0 POINT (2083000 370750)
1 BaldEagleCr 1 POINT (2083250 370750)
2 BaldEagleCr 2 POINT (2083500 370750)
3 BaldEagleCr 3 POINT (2083750 370750)
4 BaldEagleCr 4 POINT (2084000 370750)
In [44]:
# Example: Get mesh maximum water surface elevation
max_ws_df = HdfResultsMesh.get_mesh_max_ws(plan_hdf_path, ras_object=bald_eagle)
print("\nMesh Maximum Water Surface Elevation:")
print(max_ws_df.attrs)
display(max_ws_df.head())
2024-11-06 16:14:52,338 - ras_commander.HdfResultsMesh - INFO - Calling get_mesh_max_ws
2024-11-06 16:14:52,340 - ras_commander.HdfResultsMesh - INFO - Using HDF file: c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D\BaldEagleDamBrk.p06.hdf
2024-11-06 16:14:52,342 - ras_commander.HdfResultsMesh - INFO - Calling get_mesh_summary_output
2024-11-06 16:14:52,343 - ras_commander.HdfResultsMesh - INFO - Processing summary output for variable: Maximum Water Surface
2024-11-06 16:14:52,433 - ras_commander.HdfMesh - INFO - Using HDF file: c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D\BaldEagleDamBrk.p06.hdf
2024-11-06 16:14:52,435 - ras_commander.HdfMesh - INFO - Using existing HDF file: c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D\BaldEagleDamBrk.p06.hdf
2024-11-06 16:14:52,799 - ras_commander.HdfBase - INFO - Using existing HDF file: c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D\BaldEagleDamBrk.p06.hdf
2024-11-06 16:14:52,918 - ras_commander.HdfResultsMesh - INFO - Processed 19597 rows of summary output data
2024-11-06 16:14:52,919 - ras_commander.HdfResultsMesh - INFO - Finished get_mesh_summary_output
2024-11-06 16:14:52,920 - ras_commander.HdfResultsMesh - INFO - Finished get_mesh_max_ws
Mesh Maximum Water Surface Elevation:
{'mesh_name': 'BaldEagleCr', 'Max Time': 5.0, 'Max Value': 848.2054, 'Min Time': 0.99953705, 'Min Value': 535.585, 'Rows Variables': [b'WSEL', b'Time'], 'Units': [b'ft', b'days']}
mesh_name cell_id maximum_water_surface maximum_water_surface_time geometry
0 BaldEagleCr 0 704.054443 2018-09-10 18:00:00 POINT (2083000 370750)
1 BaldEagleCr 1 692.377991 2018-09-10 18:04:00 POINT (2083250 370750)
2 BaldEagleCr 2 671.183472 2018-09-10 18:13:20 POINT (2083500 370750)
3 BaldEagleCr 3 660.605469 2018-09-10 18:54:40 POINT (2083750 370750)
4 BaldEagleCr 4 660.586243 2018-09-10 18:55:20 POINT (2084000 370750)

max_ws_df:

mesh_name cell_id maximum_water_surface maximum_water_surface_time geometry
BaldEagleCr 0 704.054443 2018-09-10 18:00:00 POINT (2083000 370750)
BaldEagleCr 1 692.377991 2018-09-10 18:04:00 POINT (2083250 370750)
In [45]:
# Plot the max water surface as a map
import matplotlib.pyplot as plt
from ras_commander.HdfResultsMesh import HdfResultsMesh

# Extract x and y coordinates from the geometry column
max_ws_df['x'] = max_ws_df['geometry'].apply(lambda geom: geom.x if geom is not None else None)
max_ws_df['y'] = max_ws_df['geometry'].apply(lambda geom: geom.y if geom is not None else None)

# Remove rows with None coordinates
max_ws_df = max_ws_df.dropna(subset=['x', 'y'])

# Create the plot
fig, ax = plt.subplots(figsize=(12, 8))
scatter = ax.scatter(max_ws_df['x'], max_ws_df['y'], 
                     c=max_ws_df['maximum_water_surface'], 
                     cmap='viridis', 
                     s=10)

# Customize the plot
ax.set_title('Max Water Surface per Cell')
ax.set_xlabel('X Coordinate')
ax.set_ylabel('Y Coordinate')
plt.colorbar(scatter, label='Max Water Surface (ft)')

# Add grid lines
ax.grid(True, linestyle='--', alpha=0.7)

# Increase font size for better readability
plt.rcParams.update({'font.size': 12})

# Adjust layout to prevent cutting off labels
plt.tight_layout()

# Show the plot
plt.show()

# Print the first few rows of the dataframe for verification
print("\nFirst few rows of the dataframe:")
display(max_ws_df.head())
No description has been provided for this image
First few rows of the dataframe:
mesh_name cell_id maximum_water_surface maximum_water_surface_time geometry x y
0 BaldEagleCr 0 704.054443 2018-09-10 18:00:00 POINT (2083000 370750) 2083000.0 370750.0
1 BaldEagleCr 1 692.377991 2018-09-10 18:04:00 POINT (2083250 370750) 2083250.0 370750.0
2 BaldEagleCr 2 671.183472 2018-09-10 18:13:20 POINT (2083500 370750) 2083500.0 370750.0
3 BaldEagleCr 3 660.605469 2018-09-10 18:54:40 POINT (2083750 370750) 2083750.0 370750.0
4 BaldEagleCr 4 660.586243 2018-09-10 18:55:20 POINT (2084000 370750) 2084000.0 370750.0
In [46]:
# Plot the time of the max water surface elevation (WSEL)

import matplotlib.pyplot as plt
import matplotlib.dates as mdates
from datetime import datetime

# Convert the 'maximum_water_surface_time' to datetime objects
max_ws_df['max_wsel_time'] = pd.to_datetime(max_ws_df['maximum_water_surface_time'])

# Create the plot
fig, ax = plt.subplots(figsize=(12, 8))

# Convert datetime to hours since the start for colormap
min_time = max_ws_df['max_wsel_time'].min()
color_values = (max_ws_df['max_wsel_time'] - min_time).dt.total_seconds() / 3600  # Convert to hours

scatter = ax.scatter(max_ws_df['x'], max_ws_df['y'], 
                     c=color_values, 
                     cmap='viridis', 
                     s=10)

# Customize the plot
ax.set_title('Time of Maximum Water Surface Elevation per Cell')
ax.set_xlabel('X Coordinate')
ax.set_ylabel('Y Coordinate')

# Set up the colorbar
cbar = plt.colorbar(scatter)
cbar.set_label('Hours since simulation start')

# Format the colorbar ticks to show hours
cbar.set_ticks(range(0, int(color_values.max()) + 1, 6))  # Set ticks every 6 hours
cbar.set_ticklabels([f'{h}h' for h in range(0, int(color_values.max()) + 1, 6)])

# Add grid lines
ax.grid(True, linestyle='--', alpha=0.7)

# Increase font size for better readability
plt.rcParams.update({'font.size': 12})

# Adjust layout to prevent cutting off labels
plt.tight_layout()

# Show the plot
plt.show()

# Find the overall maximum WSEL and its time
max_wsel_row = max_ws_df.loc[max_ws_df['maximum_water_surface'].idxmax()]
hours_since_start = (max_wsel_row['max_wsel_time'] - min_time).total_seconds() / 3600
print(f"\nOverall Maximum WSEL: {max_wsel_row['maximum_water_surface']:.2f} ft")
print(f"Time of Overall Maximum WSEL: {max_wsel_row['max_wsel_time']}")
print(f"Hours since simulation start: {hours_since_start:.2f} hours")
print(f"Location of Overall Maximum WSEL: X={max_wsel_row['x']}, Y={max_wsel_row['y']}")
No description has been provided for this image
Overall Maximum WSEL: 848.21 ft
Time of Overall Maximum WSEL: 2018-09-10 17:00:00
Hours since simulation start: 41.00 hours
Location of Overall Maximum WSEL: X=1968500.0, Y=295000.0
In [47]:
# Example: Get mesh minimum water surface elevation
min_ws_df = HdfResultsMesh.get_mesh_min_ws(plan_hdf_path, ras_object=bald_eagle)
print("\nMesh Minimum Water Surface Elevation:")
display(min_ws_df.head())
2024-11-06 16:14:55,064 - ras_commander.HdfResultsMesh - INFO - Calling get_mesh_min_ws
2024-11-06 16:14:55,066 - ras_commander.HdfResultsMesh - INFO - Using HDF file: c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D\BaldEagleDamBrk.p06.hdf
2024-11-06 16:14:55,067 - ras_commander.HdfResultsMesh - INFO - Calling get_mesh_summary_output
2024-11-06 16:14:55,069 - ras_commander.HdfResultsMesh - INFO - Processing summary output for variable: Minimum Water Surface
2024-11-06 16:14:55,127 - ras_commander.HdfMesh - INFO - Using HDF file: c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D\BaldEagleDamBrk.p06.hdf
2024-11-06 16:14:55,129 - ras_commander.HdfMesh - INFO - Using existing HDF file: c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D\BaldEagleDamBrk.p06.hdf
2024-11-06 16:14:55,387 - ras_commander.HdfBase - INFO - Using existing HDF file: c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D\BaldEagleDamBrk.p06.hdf
2024-11-06 16:14:55,470 - ras_commander.HdfResultsMesh - INFO - Processed 19597 rows of summary output data
2024-11-06 16:14:55,472 - ras_commander.HdfResultsMesh - INFO - Finished get_mesh_summary_output
2024-11-06 16:14:55,473 - ras_commander.HdfResultsMesh - INFO - Finished get_mesh_min_ws
Mesh Minimum Water Surface Elevation:
mesh_name cell_id minimum_water_surface minimum_water_surface_time geometry
0 BaldEagleCr 0 701.151245 2018-09-09 00:00:20 POINT (2083000 370750)
1 BaldEagleCr 1 689.052246 2018-09-09 00:00:20 POINT (2083250 370750)
2 BaldEagleCr 2 669.774719 2018-09-09 00:00:20 POINT (2083500 370750)
3 BaldEagleCr 3 658.986938 2018-09-09 00:00:20 POINT (2083750 370750)
4 BaldEagleCr 4 658.720581 2018-09-09 00:00:20 POINT (2084000 370750)
In [48]:
# Example: Get mesh maximum face velocity
try:
    max_face_v_df = HdfResultsMesh.get_mesh_max_face_v(plan_hdf_path, ras_object=bald_eagle)
    print("\nMesh Max Face Velocity:")
    display(max_face_v_df.head())
except AttributeError as e:
    print(f"Error: {e}. Please ensure that the method exists in the HdfResultsMesh class.")
2024-11-06 16:14:55,489 - ras_commander.HdfResultsMesh - INFO - Calling get_mesh_max_face_v
2024-11-06 16:14:55,490 - ras_commander.HdfResultsMesh - INFO - Using HDF file: c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D\BaldEagleDamBrk.p06.hdf
2024-11-06 16:14:55,492 - ras_commander.HdfResultsMesh - INFO - Calling get_mesh_summary_output
2024-11-06 16:14:55,493 - ras_commander.HdfResultsMesh - INFO - Processing summary output for variable: Maximum Face Velocity
2024-11-06 16:14:55,598 - ras_commander.HdfMesh - INFO - Using HDF file: c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D\BaldEagleDamBrk.p06.hdf
2024-11-06 16:14:55,600 - ras_commander.HdfMesh - INFO - Using existing HDF file: c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D\BaldEagleDamBrk.p06.hdf
2024-11-06 16:14:56,459 - ras_commander.HdfBase - INFO - Using existing HDF file: c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D\BaldEagleDamBrk.p06.hdf
2024-11-06 16:14:56,592 - ras_commander.HdfResultsMesh - INFO - Processed 37594 rows of summary output data
2024-11-06 16:14:56,594 - ras_commander.HdfResultsMesh - INFO - Finished get_mesh_summary_output
2024-11-06 16:14:56,595 - ras_commander.HdfResultsMesh - INFO - Finished get_mesh_max_face_v
Mesh Max Face Velocity:
mesh_name face_id maximum_face_velocity maximum_face_velocity_time geometry
0 BaldEagleCr 0 0.451430 2018-09-10 18:00:00 LINESTRING (2042125 351625, 2042375 351625)
1 BaldEagleCr 1 -0.887190 2018-09-10 18:00:40 LINESTRING (2042375 351625, 2042375 351875)
2 BaldEagleCr 2 -0.498561 2018-09-10 18:00:40 LINESTRING (2042375 351875, 2042125 351875)
3 BaldEagleCr 3 -0.304673 2018-09-10 18:00:40 LINESTRING (2042125 351875, 2042125 351625)
4 BaldEagleCr 4 -0.762405 2018-09-10 10:00:40 LINESTRING (2042375 351375, 2042375 351625)
In [49]:
# Extract midpoint coordinates from the LineString geometries
max_face_v_df['x'] = max_face_v_df['geometry'].apply(lambda geom: geom.centroid.x)
max_face_v_df['y'] = max_face_v_df['geometry'].apply(lambda geom: geom.centroid.y)

# Create the plot
fig, ax = plt.subplots(figsize=(12, 8))
scatter = ax.scatter(max_face_v_df['x'], max_face_v_df['y'], 
                    c=max_face_v_df['maximum_face_velocity'].abs(),
                    cmap='viridis',
                    s=10)

# Customize the plot
ax.set_title('Max Face Velocity per Face')
ax.set_xlabel('X Coordinate') 
ax.set_ylabel('Y Coordinate')
plt.colorbar(scatter, label='Max Face Velocity (ft/s)')

# Add grid lines
ax.grid(True, linestyle='--', alpha=0.7)

# Increase font size for better readability
plt.rcParams.update({'font.size': 12})

# Adjust layout to prevent cutting off labels
plt.tight_layout()

# Show the plot
plt.show()

# Print the first few rows of the dataframe for verification
print("\nFirst few rows of the face velocity dataframe:")
display(max_face_v_df.head())
No description has been provided for this image
First few rows of the face velocity dataframe:
mesh_name face_id maximum_face_velocity maximum_face_velocity_time geometry x y
0 BaldEagleCr 0 0.451430 2018-09-10 18:00:00 LINESTRING (2042125 351625, 2042375 351625) 2042250.0 351625.0
1 BaldEagleCr 1 -0.887190 2018-09-10 18:00:40 LINESTRING (2042375 351625, 2042375 351875) 2042375.0 351750.0
2 BaldEagleCr 2 -0.498561 2018-09-10 18:00:40 LINESTRING (2042375 351875, 2042125 351875) 2042250.0 351875.0
3 BaldEagleCr 3 -0.304673 2018-09-10 18:00:40 LINESTRING (2042125 351875, 2042125 351625) 2042125.0 351750.0
4 BaldEagleCr 4 -0.762405 2018-09-10 10:00:40 LINESTRING (2042375 351375, 2042375 351625) 2042375.0 351500.0
In [50]:
# Example: Get mesh minimum face velocity
try:
    min_face_v_df = HdfResultsMesh.get_mesh_min_face_v(plan_hdf_path, ras_object=bald_eagle)
    print("\nMesh Min Face Velocity:")
    display(min_face_v_df.head())
except AttributeError as e:
    print(f"Error: {e}. Please ensure that the method exists in the HdfResultsMesh class.")
2024-11-06 16:14:59,432 - ras_commander.HdfResultsMesh - INFO - Calling get_mesh_min_face_v
2024-11-06 16:14:59,434 - ras_commander.HdfResultsMesh - INFO - Using HDF file: c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D\BaldEagleDamBrk.p06.hdf
2024-11-06 16:14:59,435 - ras_commander.HdfResultsMesh - INFO - Calling get_mesh_summary_output
2024-11-06 16:14:59,437 - ras_commander.HdfResultsMesh - INFO - Processing summary output for variable: Minimum Face Velocity
2024-11-06 16:14:59,589 - ras_commander.HdfMesh - INFO - Using HDF file: c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D\BaldEagleDamBrk.p06.hdf
2024-11-06 16:14:59,591 - ras_commander.HdfMesh - INFO - Using existing HDF file: c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D\BaldEagleDamBrk.p06.hdf
2024-11-06 16:15:00,435 - ras_commander.HdfBase - INFO - Using existing HDF file: c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D\BaldEagleDamBrk.p06.hdf
2024-11-06 16:15:00,583 - ras_commander.HdfResultsMesh - INFO - Processed 37594 rows of summary output data
2024-11-06 16:15:00,585 - ras_commander.HdfResultsMesh - INFO - Finished get_mesh_summary_output
2024-11-06 16:15:00,586 - ras_commander.HdfResultsMesh - INFO - Finished get_mesh_min_face_v
Mesh Min Face Velocity:
mesh_name face_id minimum_face_velocity minimum_face_velocity_time geometry
0 BaldEagleCr 0 0.0 2018-09-09 00:00:20 LINESTRING (2042125 351625, 2042375 351625)
1 BaldEagleCr 1 0.0 2018-09-09 00:00:20 LINESTRING (2042375 351625, 2042375 351875)
2 BaldEagleCr 2 0.0 2018-09-09 00:00:20 LINESTRING (2042375 351875, 2042125 351875)
3 BaldEagleCr 3 0.0 2018-09-09 00:00:20 LINESTRING (2042125 351875, 2042125 351625)
4 BaldEagleCr 4 0.0 2018-09-09 00:00:20 LINESTRING (2042375 351375, 2042375 351625)
In [51]:
# Example: Get mesh max water surface error
try:
    max_ws_err_df = HdfResultsMesh.get_mesh_max_ws_err(plan_hdf_path, ras_object=bald_eagle)
    print("\nMesh Max Water Surface Error:")
    display(max_ws_err_df.head())
except AttributeError as e:
    print(f"Error: {e}. Please ensure that the method exists in the HdfResultsMesh class.")
    logger.error(f"Failed to get mesh max water surface error: {str(e)}")
except Exception as e:
    print(f"Error: {str(e)}")
    logger.error(f"Failed to get mesh max water surface error: {str(e)}")
2024-11-06 16:15:00,608 - ras_commander.HdfResultsMesh - INFO - Calling get_mesh_max_ws_err
2024-11-06 16:15:00,610 - ras_commander.HdfResultsMesh - INFO - Using HDF file: c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D\BaldEagleDamBrk.p06.hdf
2024-11-06 16:15:00,611 - ras_commander.HdfResultsMesh - INFO - Calling get_mesh_summary_output
2024-11-06 16:15:00,612 - ras_commander.HdfResultsMesh - INFO - Processing summary output for variable: Cell Maximum Water Surface Error
2024-11-06 16:15:00,683 - ras_commander.HdfMesh - INFO - Using HDF file: c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D\BaldEagleDamBrk.p06.hdf
2024-11-06 16:15:00,684 - ras_commander.HdfMesh - INFO - Using existing HDF file: c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D\BaldEagleDamBrk.p06.hdf
2024-11-06 16:15:00,966 - ras_commander.HdfBase - INFO - Using existing HDF file: c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D\BaldEagleDamBrk.p06.hdf
2024-11-06 16:15:01,050 - ras_commander.HdfResultsMesh - INFO - Processed 19597 rows of summary output data
2024-11-06 16:15:01,051 - ras_commander.HdfResultsMesh - INFO - Finished get_mesh_summary_output
2024-11-06 16:15:01,052 - ras_commander.HdfResultsMesh - INFO - Finished get_mesh_max_ws_err
Mesh Max Water Surface Error:
mesh_name cell_id cell_maximum_water_surface_error cell_maximum_water_surface_error_time geometry
0 BaldEagleCr 0 0.000206 2018-09-11 20:50:00 POINT (2083000 370750)
1 BaldEagleCr 1 0.001100 2018-09-10 21:38:00 POINT (2083250 370750)
2 BaldEagleCr 2 0.000795 2018-09-10 09:58:40 POINT (2083500 370750)
3 BaldEagleCr 3 0.000314 2018-09-10 17:00:40 POINT (2083750 370750)
4 BaldEagleCr 4 0.001795 2018-09-10 09:28:00 POINT (2084000 370750)
In [52]:
# Plot max water surface error
import matplotlib.pyplot as plt

# Extract x and y coordinates from the geometry points, handling None values
max_ws_err_df['x'] = max_ws_err_df['geometry'].apply(lambda geom: geom.x if geom is not None else None)
max_ws_err_df['y'] = max_ws_err_df['geometry'].apply(lambda geom: geom.y if geom is not None else None)

# Remove any rows with None coordinates
max_ws_err_df = max_ws_err_df.dropna(subset=['x', 'y'])

# Create the plot
fig, ax = plt.subplots(figsize=(12, 8))
scatter = ax.scatter(max_ws_err_df['x'], max_ws_err_df['y'],
                    c=max_ws_err_df['cell_maximum_water_surface_error'],
                    cmap='viridis',
                    s=10)

# Customize the plot
ax.set_title('Max Water Surface Error per Cell')
ax.set_xlabel('X Coordinate')
ax.set_ylabel('Y Coordinate')
plt.colorbar(scatter, label='Max Water Surface Error (ft)')

# Add grid lines
ax.grid(True, linestyle='--', alpha=0.7)

# Increase font size for better readability
plt.rcParams.update({'font.size': 12})

# Adjust layout to prevent cutting off labels
plt.tight_layout()

# Show the plot
plt.show()

# Print the first few rows of the dataframe for verification
print("\nFirst few rows of the water surface error dataframe:")
display(max_ws_err_df.head())
No description has been provided for this image
First few rows of the water surface error dataframe:
mesh_name cell_id cell_maximum_water_surface_error cell_maximum_water_surface_error_time geometry x y
0 BaldEagleCr 0 0.000206 2018-09-11 20:50:00 POINT (2083000 370750) 2083000.0 370750.0
1 BaldEagleCr 1 0.001100 2018-09-10 21:38:00 POINT (2083250 370750) 2083250.0 370750.0
2 BaldEagleCr 2 0.000795 2018-09-10 09:58:40 POINT (2083500 370750) 2083500.0 370750.0
3 BaldEagleCr 3 0.000314 2018-09-10 17:00:40 POINT (2083750 370750) 2083750.0 370750.0
4 BaldEagleCr 4 0.001795 2018-09-10 09:28:00 POINT (2084000 370750) 2084000.0 370750.0

Need to add this to the ras-commander library¶

In [53]:
# Example: Get mesh summary output for other Datasets (here we retrieve Maximum Face Courant)
try:
    max_courant_df = HdfResultsMesh.get_mesh_summary(plan_hdf_path, var="Maximum Face Courant", ras_object=bald_eagle)
    print("\nMesh Summary Output (Maximum Courant):")
    print(max_courant_df.attrs)
    display(max_courant_df.head())
except Exception as e:
    print(f"Error: {str(e)}")
    logger.error(f"Failed to get mesh summary output: {str(e)}")
    # Additional error handling or logging can be added here
2024-11-06 16:15:02,028 - ras_commander.HdfResultsMesh - INFO - Calling get_mesh_summary
2024-11-06 16:15:02,029 - ras_commander.HdfResultsMesh - INFO - Using HDF file: c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D\BaldEagleDamBrk.p06.hdf
2024-11-06 16:15:02,030 - ras_commander.HdfResultsMesh - INFO - Calling get_mesh_summary_output
2024-11-06 16:15:02,031 - ras_commander.HdfResultsMesh - INFO - Processing summary output for variable: Maximum Face Courant
2024-11-06 16:15:02,197 - ras_commander.HdfMesh - INFO - Using HDF file: c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D\BaldEagleDamBrk.p06.hdf
2024-11-06 16:15:02,200 - ras_commander.HdfMesh - INFO - Using existing HDF file: c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D\BaldEagleDamBrk.p06.hdf
2024-11-06 16:15:03,135 - ras_commander.HdfBase - INFO - Using existing HDF file: c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D\BaldEagleDamBrk.p06.hdf
2024-11-06 16:15:03,317 - ras_commander.HdfResultsMesh - INFO - Processed 37594 rows of summary output data
2024-11-06 16:15:03,319 - ras_commander.HdfResultsMesh - INFO - Finished get_mesh_summary_output
2024-11-06 16:15:03,320 - ras_commander.HdfResultsMesh - INFO - Finished get_mesh_summary
Mesh Summary Output (Maximum Courant):
{'mesh_name': 'BaldEagleCr', 'Can Interpolate': 'False', 'Can Plot': 'True', 'Coverage': 'Average', 'Location': 'Faces', 'Maximum Value of Data Set': 0.6819884, 'Minimum Value of Data Set': 0.0, 'Name': 'Face Courant Maximum', 'Orientation': 'Scalar', 'Row': 0, 'Rows Variables': [b'Courant Face', b'Time'], 'Units': 'vel*dt/length', 'Units per row': [b'vel*dt/length', b'days']}
mesh_name face_id maximum_face_courant maximum_face_courant_time geometry
0 BaldEagleCr 0 0.000020 2018-09-09 11:03:20 LINESTRING (2042125 351625, 2042375 351625)
1 BaldEagleCr 1 0.000062 2018-09-09 11:32:40 LINESTRING (2042375 351625, 2042375 351875)
2 BaldEagleCr 2 0.000048 2018-09-10 07:02:40 LINESTRING (2042375 351875, 2042125 351875)
3 BaldEagleCr 3 0.000016 2018-09-09 11:03:20 LINESTRING (2042125 351875, 2042125 351625)
4 BaldEagleCr 4 0.000062 2018-09-09 11:05:20 LINESTRING (2042375 351375, 2042375 351625)
In [54]:
# Plot max Courant number
import matplotlib.pyplot as plt
from ras_commander.HdfMesh import HdfMesh
from ras_commander.HdfResultsMesh import HdfResultsMesh
from shapely.geometry import LineString
import geopandas as gpd

# Get mesh max Courant number
max_courant_df = HdfResultsMesh.get_mesh_summary(plan_hdf_path, var="Maximum Face Courant", ras_object=bald_eagle)

# Convert to GeoDataFrame
gdf = gpd.GeoDataFrame(max_courant_df)

# Get centroids of line geometries for plotting
gdf['centroid'] = gdf.geometry.centroid
gdf['x'] = gdf.centroid.x
gdf['y'] = gdf.centroid.y

# Create the plot
fig, ax = plt.subplots(figsize=(12, 8))
scatter = ax.scatter(gdf['x'], gdf['y'],
                    c=gdf['maximum_face_courant'],
                    cmap='viridis',
                    s=10)

# Customize the plot
ax.set_title('Max Courant Number per Face')
ax.set_xlabel('X Coordinate')
ax.set_ylabel('Y Coordinate')
plt.colorbar(scatter, label='Max Courant Number')

# Add grid lines
ax.grid(True, linestyle='--', alpha=0.7)

# Increase font size for better readability
plt.rcParams.update({'font.size': 12})

# Adjust layout to prevent cutting off labels
plt.tight_layout()

# Show the plot
plt.show()

# Print the first few rows of the dataframe for verification
print("\nFirst few rows of the Courant number dataframe:")
display(gdf.head())
2024-11-06 16:15:03,344 - ras_commander.HdfResultsMesh - INFO - Calling get_mesh_summary
2024-11-06 16:15:03,345 - ras_commander.HdfResultsMesh - INFO - Using HDF file: c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D\BaldEagleDamBrk.p06.hdf
2024-11-06 16:15:03,347 - ras_commander.HdfResultsMesh - INFO - Calling get_mesh_summary_output
2024-11-06 16:15:03,348 - ras_commander.HdfResultsMesh - INFO - Processing summary output for variable: Maximum Face Courant
2024-11-06 16:15:03,463 - ras_commander.HdfMesh - INFO - Using HDF file: c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D\BaldEagleDamBrk.p06.hdf
2024-11-06 16:15:03,464 - ras_commander.HdfMesh - INFO - Using existing HDF file: c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D\BaldEagleDamBrk.p06.hdf
2024-11-06 16:15:04,405 - ras_commander.HdfBase - INFO - Using existing HDF file: c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D\BaldEagleDamBrk.p06.hdf
2024-11-06 16:15:04,554 - ras_commander.HdfResultsMesh - INFO - Processed 37594 rows of summary output data
2024-11-06 16:15:04,556 - ras_commander.HdfResultsMesh - INFO - Finished get_mesh_summary_output
2024-11-06 16:15:04,557 - ras_commander.HdfResultsMesh - INFO - Finished get_mesh_summary
No description has been provided for this image
First few rows of the Courant number dataframe:
mesh_name face_id maximum_face_courant maximum_face_courant_time geometry centroid x y
0 BaldEagleCr 0 0.000020 2018-09-09 11:03:20 LINESTRING (2042125 351625, 2042375 351625) POINT (2042250 351625) 2042250.0 351625.0
1 BaldEagleCr 1 0.000062 2018-09-09 11:32:40 LINESTRING (2042375 351625, 2042375 351875) POINT (2042375 351750) 2042375.0 351750.0
2 BaldEagleCr 2 0.000048 2018-09-10 07:02:40 LINESTRING (2042375 351875, 2042125 351875) POINT (2042250 351875) 2042250.0 351875.0
3 BaldEagleCr 3 0.000016 2018-09-09 11:03:20 LINESTRING (2042125 351875, 2042125 351625) POINT (2042125 351750) 2042125.0 351750.0
4 BaldEagleCr 4 0.000062 2018-09-09 11:05:20 LINESTRING (2042375 351375, 2042375 351625) POINT (2042375 351500) 2042375.0 351500.0
In [55]:
# Example: Get mesh summary output for other Datasets (here we retrieve Maximum Face Courant)

max_face_shear_df = HdfResultsMesh.get_mesh_summary(plan_hdf_path, var="Maximum Face Shear Stress", ras_object=bald_eagle)
print("\nMesh Summary Output (Maximum Face Shear Stress:")
print(max_face_shear_df.attrs)
display(max_face_shear_df.head())
2024-11-06 16:15:05,546 - ras_commander.HdfResultsMesh - INFO - Calling get_mesh_summary
2024-11-06 16:15:05,548 - ras_commander.HdfResultsMesh - INFO - Using HDF file: c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D\BaldEagleDamBrk.p06.hdf
2024-11-06 16:15:05,548 - ras_commander.HdfResultsMesh - INFO - Calling get_mesh_summary_output
2024-11-06 16:15:05,549 - ras_commander.HdfResultsMesh - INFO - Processing summary output for variable: Maximum Face Shear Stress
2024-11-06 16:15:05,647 - ras_commander.HdfMesh - INFO - Using HDF file: c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D\BaldEagleDamBrk.p06.hdf
2024-11-06 16:15:05,648 - ras_commander.HdfMesh - INFO - Using existing HDF file: c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D\BaldEagleDamBrk.p06.hdf
2024-11-06 16:15:06,409 - ras_commander.HdfBase - INFO - Using existing HDF file: c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D\BaldEagleDamBrk.p06.hdf
2024-11-06 16:15:06,573 - ras_commander.HdfResultsMesh - INFO - Processed 37594 rows of summary output data
2024-11-06 16:15:06,574 - ras_commander.HdfResultsMesh - INFO - Finished get_mesh_summary_output
2024-11-06 16:15:06,575 - ras_commander.HdfResultsMesh - INFO - Finished get_mesh_summary
Mesh Summary Output (Maximum Face Shear Stress:
{'mesh_name': 'BaldEagleCr', 'Max Time': 0.0, 'Max Value': 0.0, 'Min Time': 0.0, 'Min Value': 0.0, 'Rows Variables': [b'Shear Stress', b'Time'], 'Units': [b'PSF', b'days']}
mesh_name face_id maximum_face_shear_stress maximum_face_shear_stress_time geometry
0 BaldEagleCr 0 0.0 2018-09-09 LINESTRING (2042125 351625, 2042375 351625)
1 BaldEagleCr 1 0.0 2018-09-09 LINESTRING (2042375 351625, 2042375 351875)
2 BaldEagleCr 2 0.0 2018-09-09 LINESTRING (2042375 351875, 2042125 351875)
3 BaldEagleCr 3 0.0 2018-09-09 LINESTRING (2042125 351875, 2042125 351625)
4 BaldEagleCr 4 0.0 2018-09-09 LINESTRING (2042375 351375, 2042375 351625)
In [56]:
# Plot max face shear stress
import matplotlib.pyplot as plt
from ras_commander.HdfMesh import HdfMesh
from ras_commander.HdfResultsMesh import HdfResultsMesh
from shapely.geometry import Point, LineString
import geopandas as gpd

# Get mesh max face shear stress
max_shear_df = HdfResultsMesh.get_mesh_summary(plan_hdf_path, var="Maximum Face Shear Stress", ras_object=bald_eagle)

# Calculate centroids of the line geometries and extract coordinates
max_shear_df['centroid'] = max_shear_df['geometry'].apply(lambda line: line.centroid)
max_shear_df['x'] = max_shear_df['centroid'].apply(lambda point: point.x)
max_shear_df['y'] = max_shear_df['centroid'].apply(lambda point: point.y)

# Create the plot
fig, ax = plt.subplots(figsize=(12, 8))
scatter = ax.scatter(max_shear_df['x'], max_shear_df['y'],
                    c=max_shear_df['maximum_face_shear_stress'],
                    cmap='viridis',
                    s=10)

# Customize the plot
ax.set_title('Max Face Shear Stress per Face')
ax.set_xlabel('X Coordinate')
ax.set_ylabel('Y Coordinate')
plt.colorbar(scatter, label='Max Face Shear Stress (PSF)')

# Add grid lines
ax.grid(True, linestyle='--', alpha=0.7)

# Increase font size for better readability
plt.rcParams.update({'font.size': 12})

# Adjust layout to prevent cutting off labels
plt.tight_layout()

# Show the plot
plt.show()

# Print the first few rows of the dataframe for verification
print("\nFirst few rows of the shear stress dataframe:")
display(max_shear_df.head())
2024-11-06 16:15:06,600 - ras_commander.HdfResultsMesh - INFO - Calling get_mesh_summary
2024-11-06 16:15:06,601 - ras_commander.HdfResultsMesh - INFO - Using HDF file: c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D\BaldEagleDamBrk.p06.hdf
2024-11-06 16:15:06,602 - ras_commander.HdfResultsMesh - INFO - Calling get_mesh_summary_output
2024-11-06 16:15:06,604 - ras_commander.HdfResultsMesh - INFO - Processing summary output for variable: Maximum Face Shear Stress
2024-11-06 16:15:06,738 - ras_commander.HdfMesh - INFO - Using HDF file: c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D\BaldEagleDamBrk.p06.hdf
2024-11-06 16:15:06,739 - ras_commander.HdfMesh - INFO - Using existing HDF file: c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D\BaldEagleDamBrk.p06.hdf
2024-11-06 16:15:07,660 - ras_commander.HdfBase - INFO - Using existing HDF file: c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D\BaldEagleDamBrk.p06.hdf
2024-11-06 16:15:07,816 - ras_commander.HdfResultsMesh - INFO - Processed 37594 rows of summary output data
2024-11-06 16:15:07,820 - ras_commander.HdfResultsMesh - INFO - Finished get_mesh_summary_output
2024-11-06 16:15:07,821 - ras_commander.HdfResultsMesh - INFO - Finished get_mesh_summary
No description has been provided for this image
First few rows of the shear stress dataframe:
mesh_name face_id maximum_face_shear_stress maximum_face_shear_stress_time geometry centroid x y
0 BaldEagleCr 0 0.0 2018-09-09 LINESTRING (2042125 351625, 2042375 351625) POINT (2042250 351625) 2042250.0 351625.0
1 BaldEagleCr 1 0.0 2018-09-09 LINESTRING (2042375 351625, 2042375 351875) POINT (2042375 351750) 2042375.0 351750.0
2 BaldEagleCr 2 0.0 2018-09-09 LINESTRING (2042375 351875, 2042125 351875) POINT (2042250 351875) 2042250.0 351875.0
3 BaldEagleCr 3 0.0 2018-09-09 LINESTRING (2042125 351875, 2042125 351625) POINT (2042125 351750) 2042125.0 351750.0
4 BaldEagleCr 4 0.0 2018-09-09 LINESTRING (2042375 351375, 2042375 351625) POINT (2042375 351500) 2042375.0 351500.0
In [57]:
# Example: Get mesh summary output for Minimum Water Surface
summary_df_min_ws = HdfResultsMesh.get_mesh_summary(plan_hdf_path, var="Minimum Water Surface", ras_object=bald_eagle)
print("\nMesh Summary Output (Minimum Water Surface):")
display(summary_df_min_ws.head())

# Example: Get mesh summary output for Minimum Face Velocity
summary_df_min_fv = HdfResultsMesh.get_mesh_summary(plan_hdf_path, var="Minimum Face Velocity", ras_object=bald_eagle)
print("\nMesh Summary Output (Minimum Face Velocity):")
display(summary_df_min_fv.head())

# Example: Get mesh summary output for Cell Cumulative Iteration
summary_df_cum_iter = HdfResultsMesh.get_mesh_summary(plan_hdf_path, var="Cell Cumulative Iteration", ras_object=bald_eagle)
print("\nMesh Summary Output (Cell Cumulative Iteration):")
display(summary_df_cum_iter.head())
2024-11-06 16:15:10,384 - ras_commander.HdfResultsMesh - INFO - Calling get_mesh_summary
2024-11-06 16:15:10,386 - ras_commander.HdfResultsMesh - INFO - Using HDF file: c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D\BaldEagleDamBrk.p06.hdf
2024-11-06 16:15:10,387 - ras_commander.HdfResultsMesh - INFO - Calling get_mesh_summary_output
2024-11-06 16:15:10,389 - ras_commander.HdfResultsMesh - INFO - Processing summary output for variable: Minimum Water Surface
2024-11-06 16:15:10,455 - ras_commander.HdfMesh - INFO - Using HDF file: c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D\BaldEagleDamBrk.p06.hdf
2024-11-06 16:15:10,457 - ras_commander.HdfMesh - INFO - Using existing HDF file: c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D\BaldEagleDamBrk.p06.hdf
2024-11-06 16:15:10,875 - ras_commander.HdfBase - INFO - Using existing HDF file: c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D\BaldEagleDamBrk.p06.hdf
2024-11-06 16:15:10,959 - ras_commander.HdfResultsMesh - INFO - Processed 19597 rows of summary output data
2024-11-06 16:15:10,960 - ras_commander.HdfResultsMesh - INFO - Finished get_mesh_summary_output
2024-11-06 16:15:10,961 - ras_commander.HdfResultsMesh - INFO - Finished get_mesh_summary
Mesh Summary Output (Minimum Water Surface):
mesh_name cell_id minimum_water_surface minimum_water_surface_time geometry
0 BaldEagleCr 0 701.151245 2018-09-09 00:00:20 POINT (2083000 370750)
1 BaldEagleCr 1 689.052246 2018-09-09 00:00:20 POINT (2083250 370750)
2 BaldEagleCr 2 669.774719 2018-09-09 00:00:20 POINT (2083500 370750)
3 BaldEagleCr 3 658.986938 2018-09-09 00:00:20 POINT (2083750 370750)
4 BaldEagleCr 4 658.720581 2018-09-09 00:00:20 POINT (2084000 370750)
2024-11-06 16:15:10,970 - ras_commander.HdfResultsMesh - INFO - Calling get_mesh_summary
2024-11-06 16:15:10,971 - ras_commander.HdfResultsMesh - INFO - Using HDF file: c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D\BaldEagleDamBrk.p06.hdf
2024-11-06 16:15:10,972 - ras_commander.HdfResultsMesh - INFO - Calling get_mesh_summary_output
2024-11-06 16:15:10,973 - ras_commander.HdfResultsMesh - INFO - Processing summary output for variable: Minimum Face Velocity
2024-11-06 16:15:11,087 - ras_commander.HdfMesh - INFO - Using HDF file: c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D\BaldEagleDamBrk.p06.hdf
2024-11-06 16:15:11,088 - ras_commander.HdfMesh - INFO - Using existing HDF file: c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D\BaldEagleDamBrk.p06.hdf
2024-11-06 16:15:11,880 - ras_commander.HdfBase - INFO - Using existing HDF file: c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D\BaldEagleDamBrk.p06.hdf
2024-11-06 16:15:11,998 - ras_commander.HdfResultsMesh - INFO - Processed 37594 rows of summary output data
2024-11-06 16:15:12,000 - ras_commander.HdfResultsMesh - INFO - Finished get_mesh_summary_output
2024-11-06 16:15:12,001 - ras_commander.HdfResultsMesh - INFO - Finished get_mesh_summary
Mesh Summary Output (Minimum Face Velocity):
mesh_name face_id minimum_face_velocity minimum_face_velocity_time geometry
0 BaldEagleCr 0 0.0 2018-09-09 00:00:20 LINESTRING (2042125 351625, 2042375 351625)
1 BaldEagleCr 1 0.0 2018-09-09 00:00:20 LINESTRING (2042375 351625, 2042375 351875)
2 BaldEagleCr 2 0.0 2018-09-09 00:00:20 LINESTRING (2042375 351875, 2042125 351875)
3 BaldEagleCr 3 0.0 2018-09-09 00:00:20 LINESTRING (2042125 351875, 2042125 351625)
4 BaldEagleCr 4 0.0 2018-09-09 00:00:20 LINESTRING (2042375 351375, 2042375 351625)
2024-11-06 16:15:12,008 - ras_commander.HdfResultsMesh - INFO - Calling get_mesh_summary
2024-11-06 16:15:12,010 - ras_commander.HdfResultsMesh - INFO - Using HDF file: c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D\BaldEagleDamBrk.p06.hdf
2024-11-06 16:15:12,011 - ras_commander.HdfResultsMesh - INFO - Calling get_mesh_summary_output
2024-11-06 16:15:12,012 - ras_commander.HdfResultsMesh - INFO - Processing summary output for variable: Cell Cumulative Iteration
2024-11-06 16:15:12,016 - ras_commander.HdfMesh - INFO - Using HDF file: c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D\BaldEagleDamBrk.p06.hdf
2024-11-06 16:15:12,018 - ras_commander.HdfMesh - INFO - Using existing HDF file: c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D\BaldEagleDamBrk.p06.hdf
2024-11-06 16:15:12,261 - ras_commander.HdfBase - INFO - Using existing HDF file: c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D\BaldEagleDamBrk.p06.hdf
2024-11-06 16:15:12,339 - ras_commander.HdfResultsMesh - INFO - Processed 19597 rows of summary output data
2024-11-06 16:15:12,341 - ras_commander.HdfResultsMesh - INFO - Finished get_mesh_summary_output
2024-11-06 16:15:12,341 - ras_commander.HdfResultsMesh - INFO - Finished get_mesh_summary
Mesh Summary Output (Cell Cumulative Iteration):
mesh_name cell_id cell_cumulative_iteration geometry
0 BaldEagleCr 0 0.0 POINT (2083000 370750)
1 BaldEagleCr 1 0.0 POINT (2083250 370750)
2 BaldEagleCr 2 0.0 POINT (2083500 370750)
3 BaldEagleCr 3 0.0 POINT (2083750 370750)
4 BaldEagleCr 4 0.0 POINT (2084000 370750)
In [58]:
# Get mesh timeseries output

# Get mesh areas from previous code cell
mesh_areas = HdfMesh.get_mesh_area_names(geom_hdf_path, ras_object=bald_eagle)

if mesh_areas:
    mesh_name = mesh_areas[0]  # Use the first 2D flow area name
    timeseries_da = HdfResultsMesh.get_mesh_timeseries(plan_hdf_path, mesh_name, "Water Surface", ras_object=bald_eagle)
    print(f"\nMesh Timeseries Output (Water Surface) for {mesh_name}:")
    print(timeseries_da)
else:
    print("No mesh areas found in the geometry file.")
2024-11-06 16:15:12,357 - ras_commander.HdfMesh - INFO - Using HDF file: c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D\BaldEagleDamBrk.g09.hdf
2024-11-06 16:15:12,360 - ras_commander.HdfResultsMesh - INFO - Calling get_mesh_timeseries
2024-11-06 16:15:12,362 - ras_commander.HdfResultsMesh - INFO - Using HDF file: c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D\BaldEagleDamBrk.p06.hdf
2024-11-06 16:15:13,045 - ras_commander.HdfResultsMesh - INFO - Finished get_mesh_timeseries
Mesh Timeseries Output (Water Surface) for BaldEagleCr:
<xarray.DataArray (time: 721, cell_id: 19597)> Size: 57MB
array([[701.15125, 689.05225, 669.7747 , ..., 696.1488 , 773.81085,
        782.3656 ],
       [701.15125, 689.05225, 669.7747 , ..., 696.1488 , 773.81085,
        782.3656 ],
       [701.15125, 689.05225, 669.7747 , ..., 696.1488 , 773.81085,
        782.3656 ],
       ...,
       [701.75244, 689.78314, 670.0496 , ..., 696.1488 , 773.81085,
        782.3656 ],
       [701.75183, 689.7824 , 670.0493 , ..., 696.1488 , 773.81085,
        782.3656 ],
       [701.7513 , 689.78174, 670.0491 , ..., 696.1488 , 773.81085,
        782.3656 ]], dtype=float32)
Coordinates:
  * time     (time) datetime64[ns] 6kB 2018-09-09 ... 2018-09-14
  * cell_id  (cell_id) int32 78kB 0 1 2 3 4 5 ... 19592 19593 19594 19595 19596
Attributes:
    units:      ft
    mesh_name:  BaldEagleCr
    variable:   Water Surface
In [59]:
# Time Series Output Variables for Cells
# 
# Variable Name: Description
# Water Surface: Water surface elevation
# Depth: Water depth
# Velocity: Magnitude of velocity
# Velocity X: X-component of velocity
# Velocity Y: Y-component of velocity
# Froude Number: Froude number
# Courant Number: Courant number
# Shear Stress: Shear stress on the bed
# Bed Elevation: Elevation of the bed
# Precipitation Rate: Rate of precipitation
# Infiltration Rate: Rate of infiltration
# Evaporation Rate: Rate of evaporation
# Percolation Rate: Rate of percolation
# Groundwater Elevation: Elevation of groundwater
# Groundwater Depth: Depth to groundwater
# Groundwater Flow: Groundwater flow rate
# Groundwater Velocity: Magnitude of groundwater velocity
# Groundwater Velocity X: X-component of groundwater velocity
# Groundwater Velocity Y: Y-component of groundwater velocity
# 
# These variables are available for time series output at the cell level in 2D flow areas.
In [60]:
# Get mesh cells timeseries output
cells_timeseries_ds = HdfResultsMesh.get_mesh_cells_timeseries(plan_hdf_path, mesh_name, ras_object=bald_eagle)
print("\nMesh Cells Timeseries Output:")
print(cells_timeseries_ds)
2024-11-06 16:15:13,075 - ras_commander.HdfResultsMesh - INFO - Calling get_mesh_cells_timeseries
2024-11-06 16:15:13,077 - ras_commander.HdfResultsMesh - INFO - Using HDF file: c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D\BaldEagleDamBrk.p06.hdf
2024-11-06 16:15:13,633 - ras_commander.HdfResultsMesh - WARNING - Variable 'Depth' not found in the HDF file for mesh 'BaldEagleCr'. Skipping.
2024-11-06 16:15:13,634 - ras_commander.HdfResultsMesh - WARNING - Variable 'Velocity' not found in the HDF file for mesh 'BaldEagleCr'. Skipping.
2024-11-06 16:15:13,635 - ras_commander.HdfResultsMesh - WARNING - Variable 'Velocity X' not found in the HDF file for mesh 'BaldEagleCr'. Skipping.
2024-11-06 16:15:13,636 - ras_commander.HdfResultsMesh - WARNING - Variable 'Velocity Y' not found in the HDF file for mesh 'BaldEagleCr'. Skipping.
2024-11-06 16:15:13,637 - ras_commander.HdfResultsMesh - WARNING - Variable 'Froude Number' not found in the HDF file for mesh 'BaldEagleCr'. Skipping.
2024-11-06 16:15:13,638 - ras_commander.HdfResultsMesh - WARNING - Variable 'Courant Number' not found in the HDF file for mesh 'BaldEagleCr'. Skipping.
2024-11-06 16:15:13,639 - ras_commander.HdfResultsMesh - WARNING - Variable 'Shear Stress' not found in the HDF file for mesh 'BaldEagleCr'. Skipping.
2024-11-06 16:15:13,640 - ras_commander.HdfResultsMesh - WARNING - Variable 'Bed Elevation' not found in the HDF file for mesh 'BaldEagleCr'. Skipping.
2024-11-06 16:15:13,640 - ras_commander.HdfResultsMesh - WARNING - Variable 'Precipitation Rate' not found in the HDF file for mesh 'BaldEagleCr'. Skipping.
2024-11-06 16:15:13,641 - ras_commander.HdfResultsMesh - WARNING - Variable 'Infiltration Rate' not found in the HDF file for mesh 'BaldEagleCr'. Skipping.
2024-11-06 16:15:13,643 - ras_commander.HdfResultsMesh - WARNING - Variable 'Evaporation Rate' not found in the HDF file for mesh 'BaldEagleCr'. Skipping.
2024-11-06 16:15:13,644 - ras_commander.HdfResultsMesh - WARNING - Variable 'Percolation Rate' not found in the HDF file for mesh 'BaldEagleCr'. Skipping.
2024-11-06 16:15:13,645 - ras_commander.HdfResultsMesh - WARNING - Variable 'Groundwater Elevation' not found in the HDF file for mesh 'BaldEagleCr'. Skipping.
2024-11-06 16:15:13,646 - ras_commander.HdfResultsMesh - WARNING - Variable 'Groundwater Depth' not found in the HDF file for mesh 'BaldEagleCr'. Skipping.
2024-11-06 16:15:13,647 - ras_commander.HdfResultsMesh - WARNING - Variable 'Groundwater Flow' not found in the HDF file for mesh 'BaldEagleCr'. Skipping.
2024-11-06 16:15:13,648 - ras_commander.HdfResultsMesh - WARNING - Variable 'Groundwater Velocity' not found in the HDF file for mesh 'BaldEagleCr'. Skipping.
2024-11-06 16:15:13,648 - ras_commander.HdfResultsMesh - WARNING - Variable 'Groundwater Velocity X' not found in the HDF file for mesh 'BaldEagleCr'. Skipping.
2024-11-06 16:15:13,649 - ras_commander.HdfResultsMesh - WARNING - Variable 'Groundwater Velocity Y' not found in the HDF file for mesh 'BaldEagleCr'. Skipping.
2024-11-06 16:15:15,794 - ras_commander.HdfResultsMesh - WARNING - Variable 'Face Courant' not found in the HDF file for mesh 'BaldEagleCr'. Skipping.
2024-11-06 16:15:15,795 - ras_commander.HdfResultsMesh - WARNING - Variable 'Face Cumulative Volume' not found in the HDF file for mesh 'BaldEagleCr'. Skipping.
2024-11-06 16:15:15,939 - ras_commander.HdfResultsMesh - WARNING - Variable 'Face Flow Period Average' not found in the HDF file for mesh 'BaldEagleCr'. Skipping.
2024-11-06 16:15:15,939 - ras_commander.HdfResultsMesh - WARNING - Variable 'Face Friction Term' not found in the HDF file for mesh 'BaldEagleCr'. Skipping.
2024-11-06 16:15:15,940 - ras_commander.HdfResultsMesh - WARNING - Variable 'Face Pressure Gradient Term' not found in the HDF file for mesh 'BaldEagleCr'. Skipping.
2024-11-06 16:15:16,502 - ras_commander.HdfResultsMesh - WARNING - Variable 'Face Tangential Velocity' not found in the HDF file for mesh 'BaldEagleCr'. Skipping.
2024-11-06 16:15:16,506 - ras_commander.HdfResultsMesh - INFO - Finished get_mesh_cells_timeseries
Mesh Cells Timeseries Output:
{'BaldEagleCr': <xarray.Dataset> Size: 599MB
Dimensions:              (time: 721, cell_id: 19597, face_id: 37594)
Coordinates:
  * time                 (time) datetime64[ns] 6kB 2018-09-09 ... 2018-09-14
  * cell_id              (cell_id) int32 78kB 0 1 2 3 ... 19594 19595 19596
  * face_id              (face_id) int32 150kB 0 1 2 3 ... 37591 37592 37593
Data variables:
    Water Surface        (time, cell_id) float32 57MB 701.2 689.1 ... 782.4
    Face Velocity        (time, face_id) float32 108MB 0.0 0.0 0.0 ... 0.0 0.0
    Face Flow            (time, face_id) float32 108MB 0.0 0.0 0.0 ... 0.0 0.0
    Face Water Surface   (time, face_id) float32 108MB 620.1 630.9 ... 782.4
    Face Eddy Viscosity  (time, face_id) float32 108MB 0.0 0.0 0.0 ... 0.0 0.0
    Face Shear Stress    (time, face_id) float32 108MB 0.0 0.0 0.0 ... 0.0 0.0
Attributes:
    mesh_name:   BaldEagleCr
    start_time:  2018-09-09 00:00:00}
In [61]:
# Plot Cell Time Series Data (Random Cell ID)
import matplotlib.pyplot as plt
import numpy as np
import random

# Extract Water Surface data
water_surface = cells_timeseries_ds['BaldEagleCr']['Water Surface']

# Get the time values
time_values = water_surface.coords['time'].values

# Pick a random cell_id
random_cell_id = random.choice(water_surface.coords['cell_id'].values)

# Extract the water surface elevation time series for the random cell
wsel_timeseries = water_surface.sel(cell_id=random_cell_id)

# Find the peak value and its index
peak_value = wsel_timeseries.max().item()
peak_index = wsel_timeseries.argmax().item()

# Create the plot
plt.figure(figsize=(12, 6))
plt.plot(time_values, wsel_timeseries, label=f'Cell ID: {random_cell_id}')
plt.scatter(time_values[peak_index], peak_value, color='red', s=100, zorder=5)
plt.annotate(f'Peak: {peak_value:.2f} ft', 
             (time_values[peak_index], peak_value),
             xytext=(10, 10), textcoords='offset points',
             ha='left', va='bottom',
             bbox=dict(boxstyle='round,pad=0.5', fc='yellow', alpha=0.5),
             arrowprops=dict(arrowstyle='->', connectionstyle='arc3,rad=0'))

plt.title(f'Water Surface Elevation Time Series for Random Cell (ID: {random_cell_id})')
plt.xlabel('Time')
plt.ylabel('Water Surface Elevation (ft)')
plt.legend()
plt.grid(True)
plt.tight_layout()

# Log the plotting action
logging.info(f"Plotted water surface elevation time series for random cell ID: {random_cell_id}")

# Display the plot
plt.show()

# Print some statistics
print(f"Statistics for Cell ID {random_cell_id}:")
print(f"Minimum WSEL: {wsel_timeseries.min().item():.2f} ft")
print(f"Maximum WSEL: {peak_value:.2f} ft")
print(f"Mean WSEL: {wsel_timeseries.mean().item():.2f} ft")
print(f"Time of peak: {time_values[peak_index]}")
2024-11-06 16:15:16,611 - root - INFO - Plotted water surface elevation time series for random cell ID: 7630
No description has been provided for this image
Statistics for Cell ID 7630:
Minimum WSEL: 643.40 ft
Maximum WSEL: 644.13 ft
Mean WSEL: 643.57 ft
Time of peak: 2018-09-10T09:30:00.000000000
In [62]:
# Get mesh faces timeseries output
faces_timeseries_ds = HdfResultsMesh.get_mesh_faces_timeseries(plan_hdf_path, mesh_name, ras_object=bald_eagle)
print("\nMesh Faces Timeseries Output:")
print(faces_timeseries_ds)
2024-11-06 16:15:16,842 - ras_commander.HdfResultsMesh - INFO - Calling get_mesh_faces_timeseries
2024-11-06 16:15:16,844 - ras_commander.HdfResultsMesh - INFO - Using HDF file: c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D\BaldEagleDamBrk.p06.hdf
2024-11-06 16:15:16,844 - ras_commander.HdfResultsMesh - INFO - Calling get_mesh_timeseries
2024-11-06 16:15:16,845 - ras_commander.HdfResultsMesh - INFO - Using existing HDF file: c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D\BaldEagleDamBrk.p06.hdf
2024-11-06 16:15:17,874 - ras_commander.HdfResultsMesh - INFO - Finished get_mesh_timeseries
2024-11-06 16:15:17,874 - ras_commander.HdfResultsMesh - INFO - Calling get_mesh_timeseries
2024-11-06 16:15:17,875 - ras_commander.HdfResultsMesh - INFO - Using existing HDF file: c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D\BaldEagleDamBrk.p06.hdf
2024-11-06 16:15:18,882 - ras_commander.HdfResultsMesh - INFO - Finished get_mesh_timeseries
2024-11-06 16:15:18,884 - ras_commander.HdfResultsMesh - INFO - Finished get_mesh_faces_timeseries
Mesh Faces Timeseries Output:
<xarray.Dataset> Size: 217MB
Dimensions:        (time: 720, face_id: 37594)
Coordinates:
  * time           (time) datetime64[ns] 6kB 2018-09-09T00:10:00 ... 2018-09-14
  * face_id        (face_id) int32 150kB 0 1 2 3 4 ... 37590 37591 37592 37593
Data variables:
    face_velocity  (time, face_id) float32 108MB 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0
    face_flow      (time, face_id) float32 108MB 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0
Attributes:
    units:      ft/s
    mesh_name:  BaldEagleCr
    variable:   Face Velocity
In [63]:
# Plot Random Face Results and Label Peak, Plus Map View

# Step 1: Import necessary libraries 
# In notebook cell at top of notebook

# Step 2: Select a random valid face ID number
random_face = np.random.randint(0, faces_timeseries_ds.sizes['face_id'])

# Step 3: Extract time series data for the selected face
variable = 'face_velocity'  # We could also use 'face_flow'
face_data = faces_timeseries_ds[variable].sel(face_id=random_face)

# Step 4: Find peak value and its corresponding time
peak_value = face_data.max().item()
peak_time = face_data.idxmax().values

# Plot time series
plt.figure(figsize=(12, 8))
plt.plot(faces_timeseries_ds.time, face_data)
plt.title(f'{variable.capitalize()} Time Series for Face {random_face}')
plt.xlabel('Time')
plt.ylabel(f'{variable.capitalize()} ({faces_timeseries_ds.attrs["units"]})')
plt.grid(True)

# Annotate the peak point
plt.annotate(f'Peak: ({peak_time}, {peak_value:.2f})', 
            (peak_time, peak_value),
            xytext=(10, 10), textcoords='offset points',
            arrowprops=dict(arrowstyle="->"))

# Check for negative values and label the minimum if present
min_value = face_data.min().item()
if min_value < 0:
    min_time = face_data.idxmin().values
    plt.annotate(f'Min: ({min_time}, {min_value:.2f})', 
                (min_time, min_value),
                xytext=(10, -10), textcoords='offset points',
                arrowprops=dict(arrowstyle="->"))

plt.tight_layout()
plt.show()

# Create map view plot
fig, ax = plt.subplots(figsize=(12, 8))

# Get mesh faces for map view
mesh_faces = HdfMesh.get_mesh_cell_faces(plan_hdf_path, ras_object=bald_eagle)

# Calculate mesh faces extents with 10% buffer
faces_bounds = mesh_faces.total_bounds
x_min, y_min, x_max, y_max = faces_bounds
buffer_x = (x_max - x_min) * 0.1
buffer_y = (y_max - y_min) * 0.1
plot_xlim = [x_min - buffer_x, x_max + buffer_x]
plot_ylim = [y_min - buffer_y, y_max + buffer_y]

# Set plot limits before adding terrain
ax.set_xlim(plot_xlim)
ax.set_ylim(plot_ylim)

# Add the terrain TIFF to the map, clipped to our desired extent
tiff_path = Path.cwd() / 'example_projects' / 'BaldEagleCrkMulti2D' / 'Terrain' / 'Terrain50.baldeagledem.tif'
with rasterio.open(tiff_path) as src:
    show(src, ax=ax, cmap='terrain', alpha=0.5)
    
# Reset the limits after terrain plot
ax.set_xlim(plot_xlim)
ax.set_ylim(plot_ylim)

# Plot all faces in gray
mesh_faces.plot(ax=ax, color='lightgray', alpha=0.5, zorder=2)

# Get the selected face geometry
selected_face = mesh_faces[mesh_faces['face_id'] == random_face]

# Highlight the selected face in red
selected_face.plot(
    ax=ax, 
    color='red',
    linewidth=2,
    label=f'Selected Face (ID: {random_face})',
    zorder=3
)

# Get bounds of selected face for zoomed inset
bounds = selected_face.geometry.bounds.iloc[0]
x_center = (bounds.iloc[0] + bounds.iloc[2]) / 2
y_center = (bounds.iloc[1] + bounds.iloc[3]) / 2
buffer = max(bounds.iloc[2] - bounds.iloc[0], bounds.iloc[3] - bounds.iloc[1]) * 2

# Create zoomed inset with a larger size, inside the map frame
axins = inset_axes(ax, width="70%", height="70%", loc='lower right',
                  bbox_to_anchor=(0.65, 0.05, 0.35, 0.35),
                  bbox_transform=ax.transAxes)

# Plot terrain and faces in inset
with rasterio.open(tiff_path) as src:
    show(src, ax=axins, cmap='terrain', alpha=0.5)
    
# Plot zoomed view in inset
mesh_faces.plot(ax=axins, color='lightgray', alpha=0.5, zorder=2)
selected_face.plot(ax=axins, color='red', linewidth=2, zorder=3)

# Set inset limits with slightly more context
axins.set_xlim(x_center - buffer/1.5, x_center + buffer/1.5)
axins.set_ylim(y_center - buffer/1.5, y_center + buffer/1.5)

# Remove inset ticks for cleaner look
axins.set_xticks([])
axins.set_yticks([])

# Add a border to the inset
for spine in axins.spines.values():
    spine.set_edgecolor('black')
    spine.set_linewidth(1.5)

# Create connection lines between main plot and inset
# Get the selected face centroid for connection point
centroid = selected_face.geometry.centroid.iloc[0]
con1 = ConnectionPatch(
    xyA=(centroid.x, centroid.y), coordsA=ax.transData,
    xyB=(0.02, 0.98), coordsB=axins.transAxes,
    arrowstyle="-", linestyle="--", color="gray", alpha=0.6
)
con2 = ConnectionPatch(
    xyA=(centroid.x, centroid.y), coordsA=ax.transData,
    xyB=(0.98, 0.02), coordsB=axins.transAxes,
    arrowstyle="-", linestyle="--", color="gray", alpha=0.6
)

ax.add_artist(con1)
ax.add_artist(con2)

# Add title and legend to main plot
ax.set_title('Mesh Face Map View with Terrain')
ax.legend()

# Ensure equal aspect ratio while maintaining our desired extents
ax.set_aspect('equal', adjustable='box')

plt.tight_layout()
plt.show()

# Print summary information
print(f"Random Face: {random_face}")
print(f"Peak Value: {peak_value:.2f} {faces_timeseries_ds.attrs['units']} at {peak_time}")
if min_value < 0:
    print(f"Minimum Value: {min_value:.2f} {faces_timeseries_ds.attrs['units']} at {min_time}")

# Log the plotting action
logging.info(f"Plotted mesh face time series and map view for random face ID: {random_face} with terrain")
No description has been provided for this image
2024-11-06 16:15:19,215 - ras_commander.HdfMesh - INFO - Using HDF file: c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D\BaldEagleDamBrk.p06.hdf
2024-11-06 16:15:19,216 - ras_commander.HdfMesh - INFO - Using existing HDF file: c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D\BaldEagleDamBrk.p06.hdf
2024-11-06 16:15:20,022 - ras_commander.HdfBase - INFO - Using existing HDF file: c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D\BaldEagleDamBrk.p06.hdf
C:\Users\billk\AppData\Local\Temp\ipykernel_36876\2871066189.py:141: UserWarning: This figure includes Axes that are not compatible with tight_layout, so results might be incorrect.
  plt.tight_layout()
No description has been provided for this image
2024-11-06 16:15:37,972 - root - INFO - Plotted mesh face time series and map view for random face ID: 2991 with terrain
Random Face: 2991
Peak Value: 0.00 ft/s at 2018-09-10T12:00:00.000000000
Minimum Value: -0.02 ft/s at 2018-09-10T10:10:00.000000000
In [64]:
# Get meteorology precipitation attributes
meteo_precip_attrs = HdfPlan.get_plan_met_precip(plan_hdf_path, ras_object=bald_eagle)
print("\nMeteorology Precipitation Attributes:")
for key, value in meteo_precip_attrs.items():
    print(f"{key}: {value}")
2024-11-06 16:15:38,009 - ras_commander.HdfPlan - INFO - Calling get_plan_met_precip
2024-11-06 16:15:38,011 - ras_commander.HdfPlan - INFO - Using HDF file: c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D\BaldEagleDamBrk.p06.hdf
2024-11-06 16:15:38,017 - ras_commander.HdfPlan - INFO - Finished get_plan_met_precip
Meteorology Precipitation Attributes:
DSS Filename: .\Precipitation\precip.2018.09.dss
DSS Pathname: /SHG/MARFC/PRECIP/01SEP2018:0200/01SEP2018:0300/NEXRAD/
Data Type: per-cum
Interpolation Method: 
Mode: Gridded
Projection: PROJCS["USA_Contiguous_Albers_Equal_Area_Conic_USGS_version",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0],UNIT["Degree",0.0174532925199433]],PROJECTION["Albers_Conic_Equal_Area"],PARAMETER["latitude_of_center",23],PARAMETER["longitude_of_center",-96],PARAMETER["standard_parallel_1",29.5],PARAMETER["standard_parallel_2",45.5],PARAMETER["false_easting",0],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Easting",EAST],AXIS["Northing",NORTH]]
Raster Cellsize: 2000.0
Raster Cols: 515
Raster Left: 1096000.0
Raster Rows: 522
Raster Top: 2560000.0
Source: DSS
Units: in
In [65]:
# Get results unsteady attributes
results_unsteady_attrs = HdfResultsPlan.get_unsteady_info(plan_hdf_path, ras_object=bald_eagle)
print("\nResults Unsteady Attributes:")
for key, value in results_unsteady_attrs.items():
    print(f"{key}: {value}")
2024-11-06 16:15:38,030 - ras_commander.HdfResultsPlan - INFO - Calling get_unsteady_info
2024-11-06 16:15:38,032 - ras_commander.HdfResultsPlan - INFO - Using HDF file: c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D\BaldEagleDamBrk.p06.hdf
2024-11-06 16:15:38,036 - ras_commander.HdfResultsPlan - INFO - Finished get_unsteady_info
Results Unsteady Attributes:
Plan Title: 0    b'Gridded Precip - Infiltration'
Name: Plan Title, dtype: object
Program Name: 0    b'HEC-RAS - River Analysis System'
Name: Program Name, dtype: object
Program Version: 0    b'HEC-RAS 6.6 September 2024'
Name: Program Version, dtype: object
Project File Name: 0    b'c:\\GH\\ras-commander\\examples\\example_pro...
Name: Project File Name, dtype: object
Project Title: 0    b'Bald Eagle Creek Example Dam Break Study'
Name: Project Title, dtype: object
Short ID: 0    b'Grid Precip Infiltration'
Name: Short ID, dtype: object
Simulation Time Window: 0    b'08Sep2018 2400 to 13Sep2018 2400'
Name: Simulation Time Window, dtype: object
Type of Run: 0    b'Unsteady Flow Analysis'
Name: Type of Run, dtype: object
In [66]:
# Get results unsteady summary attributes
results_unsteady_summary_attrs = HdfResultsPlan.get_unsteady_summary(plan_hdf_path, ras_object=bald_eagle)
print("\nResults Unsteady Summary Attributes:")
for key, value in results_unsteady_summary_attrs.items():
    print(f"{key}: {value}")

# Get results volume accounting attributes
volume_accounting_attrs = HdfResultsPlan.get_volume_accounting(plan_hdf_path, ras_object=bald_eagle)
print("\nVolume Accounting Attributes:")
for key, value in volume_accounting_attrs.items():
    print(f"{key}: {value}")
2024-11-06 16:15:38,054 - ras_commander.HdfResultsPlan - INFO - Calling get_unsteady_summary
2024-11-06 16:15:38,057 - ras_commander.HdfResultsPlan - INFO - Using HDF file: c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D\BaldEagleDamBrk.p06.hdf
2024-11-06 16:15:38,063 - ras_commander.HdfResultsPlan - INFO - Finished get_unsteady_summary
2024-11-06 16:15:38,071 - ras_commander.HdfResultsPlan - INFO - Calling get_volume_accounting
2024-11-06 16:15:38,073 - ras_commander.HdfResultsPlan - INFO - Using HDF file: c:\GH\ras-commander\examples\example_projects\BaldEagleCrkMulti2D\BaldEagleDamBrk.p06.hdf
2024-11-06 16:15:38,078 - ras_commander.HdfResultsPlan - INFO - Finished get_volume_accounting
Results Unsteady Summary Attributes:
Computation Time DSS: 0    b'00:00:00'
Name: Computation Time DSS, dtype: object
Computation Time Total: 0    b'00:06:37'
Name: Computation Time Total, dtype: object
Maximum WSEL Error: 0    0.0
Name: Maximum WSEL Error, dtype: float32
Maximum number of cores: 0    6
Name: Maximum number of cores, dtype: int32
Run Time Window: 0    b'06NOV2024 14:16:15 to 06NOV2024 14:22:51'
Name: Run Time Window, dtype: object
Solution: 0    b'Unsteady Finished Successfully'
Name: Solution, dtype: object
Time Solution Went Unstable: 0   NaN
Name: Time Solution Went Unstable, dtype: float32
Time Stamp Solution Went Unstable: 0    b'Not Applicable'
Name: Time Stamp Solution Went Unstable, dtype: object

Volume Accounting Attributes:
Error: 0    0.469215
Name: Error, dtype: float32
Error Percent: 0    0.000331
Name: Error Percent, dtype: float32
Precipitation Excess (acre feet): 0    3756.872803
Name: Precipitation Excess (acre feet), dtype: float32
Precipitation Excess (inches): 0    1.707615
Name: Precipitation Excess (inches), dtype: float32
Total Boundary Flux of Water In: 0    141685.0
Name: Total Boundary Flux of Water In, dtype: float32
Total Boundary Flux of Water Out: 0    17240.263672
Name: Total Boundary Flux of Water Out, dtype: float32
Vol Accounting in: 0    b'Acre Feet'
Name: Vol Accounting in, dtype: object
Volume Ending: 0    124445.203125
Name: Volume Ending, dtype: float32
Volume Starting: 0    0.0
Name: Volume Starting, dtype: float32